diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..6e0f6b654 --- /dev/null +++ b/Makefile @@ -0,0 +1,872 @@ +# Copyright (C) 2008-today The SG++ project +# This file is part of the SG++ project. For conditions of distribution and +# use, please see the copyright notice provided with SG++ or at +# sgpp.sparsegrids.org + +################################################################### +# Needed Pathes +################################################################### +SRCDIR=./../../../src/sgpp +-I/home/sgsscratch/goehrims/matrixfree-install/include +#only for extensions: +##################### +# Intel Array Building Blocks +ARBBINCLUDE = /opt/intel/arbb/1.0.0.030/include +ARBBLIB = /opt/intel/arbb/1.0.0.030/lib/intel64 +# NVidia OpenCL +CUDAINCLUDE = /usr/local/cuda/include +CUDALIB = /usr/local/cuda/lib64 +OCLINCLUDE = /usr/local/cuda/include +OCLLIB = /usr/lib64/ +#OCLINCLUDE = ${CUDATOOLKIT_HOME}/include +#OCLLIB = /opt/cray/nvidia/default/lib64 +# Intel OpenCL +#IOCLINCLUDE = /usr/include +#IOCLLIB = /usr/lib64/OpenCL/vendors/intel +#IOCLINCLUDE = /etc/alternatives/opencl-headers +#IOCLLIB = /etc/alternatives/opencl-intel-runtime/lib64 +IOCLINCLUDE = /opt/intel/opencl/include +IOCLLIB = /opt/intel/opencl/lib64 +# AMD OpenCL +# AMDOCLINCLUDE = /opt/AMDAPP/include +# AMDOCLLIB = /opt/AMDAPP/lib/x86_64 +AMDOCLINCLUDE = /lrz/sys/parallel/amdapp/2.7/include +AMDOCLLIB = /lrz/sys/parallel/amdapp/2.7/lib/x86_64 +# Intel OpenCL, Windows +IOCLINCLUDEWIN = \"C:\Program Files (x86)\Intel\OpenCL SDK\3.0\include\" +IOCLLIBWIN = \"C:\Program Files (x86)\Intel\OpenCL SDK\3.0\lib\x64\OpenCL.lib\" + +################################################################### +# Default Variables, overwirtten by CLI +################################################################### +# use OpenMP Version 3 +OMP=1 +# use the TR1 Implementations for Hashmaps +TR1=0 +# default compiler: g++; possible values: g++, icpc (Intel Compiler) +CC=g++ +#CC=icpc +# vectorization option +# sse3 +# sse4 +# avx +VEC=sse3 +# extensions, manages extensions to be included, possible values (only when using Intel Compiler): +# ArBB - Intel Array Building Blocks support +# AMDOCLGPU - AMD GPU OpenCL support +# INTELOCL - Intel CPU OpenCL support +# INTELOCLGPU - Intel GPU OpenCL support +# INTELOCLMIC - Intel MIC OpenCL support (Phi coprocessor) +# NVOCL - NVIDIA OpenCL support +# MIC_OFFLOAD - Intel MIC coprocessor in offload mode +# MIC_NATIVE - compile for native execution on Intel MIC coprocessor +# NO - no extensions, default +EXT=NO +# MPI - MPI support +MPI=0 +# instances used to compile +JOBS=4 +# Default residual threshold +SLE_RES_THRESH=-1.0 +# Default number of parallel dimensions for the parallelization of the recursive up down scheme +UPDOWN_PARADIMS=4 +# Compile for x86, but change vector width to match the one of MIC_NATIVE. This is needed for symmetric MPI execution. This option only has an effect for compilation with mpiicpc. +X86_MIC_SYMMETRIC=0 +# Enable/Disable Operation Matrix Results +STORE_OP_MA=0 +# Enable/Disable -ip -ipo +IPO=0 + + +################################################################### +# Compiler Flags +################################################################### +CFLAGS_GCC:=-Wall -Werror -Wconversion -Wno-deprecated -Wno-long-long -pedantic -ansi -c -O3 -funroll-loops -fno-strict-aliasing -fPIC -mfpmath=sse -I$(SRCDIR) +LFLAGS_GCC:=-Wall -pedantic -ansi -O3 + +CFLAGS_ICC:=-Wall -Werror -wd1125 -Wconversion -Wno-deprecated -ipo -ip -ansi -ansi-alias -fp-speculation=safe -c -O3 -funroll-loops -fPIC -I$(SRCDIR) +LFLAGS_ICC:=-Wall -ipo -ip -ansi -O3 + +CFLAGS_ICL:=/Wall /Qipo /Qip /Oa /Qansi_alias /Qfp-speculation=safe /c /O3 /Qunroll-aggressive /I$(SRCDIR) /DUSETRONE /Qcxx-features /D_WIN32 /DNOMINMAX +LFLAGS_ICL:=/Wall /Qipo /Qip /Qansi_alias /O3 + +ifeq ($(IPO), 0) +CFLAGS_ICC:=-Wall -Werror -wd1125 -Wconversion -Wno-deprecated -ip -ansi -ansi-alias -fp-speculation=safe -c -O3 -funroll-loops -fPIC -I$(SRCDIR) +LFLAGS_ICC:=-Wall -ip -ansi -O3 +endif + +ifeq ($(EXT), MIC_NATIVE) +VEC:="" +endif + +ifneq ($(EXT), MIC_OFFLOAD) +CFLAGS_ICC:=$(CFLAGS_ICC) -no-offload +LFLAGS_ICC:=$(LFLAGS_ICC) -no-offload +endif + +ifeq ($(STORE_OP_MA), 1) +CFLAGS_ICC:=$(CFLAGS_ICC) -DSTORE_MATRIX=1 +LFLAGS_ICC:=$(LFLAGS_ICC) -DSTORE_MATRIX=1 + +CFLAGS_GCC:=$(CFLAGS_GCC) -DSTORE_MATRIX=1 +LFLAGS_GCC:=$(LFLAGS_GCC) -DSTORE_MATRIX=1 +endif + +ifeq ($(CC),g++) +CFLAGS:=$(CFLAGS_GCC) +LFLAGS:=$(LFLAGS_GCC) +EXT=NO +ifeq ($(OMP),1) +CFLAGS:=$(CFLAGS) -fopenmp +LFLAGS:=$(LFLAGS) -fopenmp +endif +ifeq ($(VEC),sse3) +CFLAGS:=$(CFLAGS) -msse3 +endif +ifeq ($(VEC),sse4) +CFLAGS:=$(CFLAGS) -msse4.2 +endif +ifeq ($(VEC),avx128) +CFLAGS:=$(CFLAGS) -mavx -D__USEAVX128__ +endif +ifeq ($(VEC),avx) +CFLAGS:=$(CFLAGS) -mavx +endif +ifeq ($(VEC),avx2) +CFLAGS:=$(CFLAGS) -mavx2 -mfma +endif +ifeq ($(VEC),bd_avx128) +CFLAGS:=$(CFLAGS) -mavx -mfma4 -mxop -march=bdver1 -D__USEAVX128__ +endif +ifeq ($(VEC),bd_avx) +CFLAGS:=$(CFLAGS) -mavx -mfma4 -mxop -march=bdver1 +endif +ifeq ($(TR1),1) +CFLAGS:=$(CFLAGS) -DUSETRONE -std=c++0x +endif +ifeq ($(EXT), ArBB) +CFLAGS:=$(CFLAGS) -I$(ARBBINCLUDE) -DUSEARBB +LFLAGS:=$(LFLAGS) -L$(ARBBLIB) -larbb -ltbb +endif +ifeq ($(EXT), NVOCL) +CFLAGS:=$(CFLAGS) -I$(OCLINCLUDE) -DUSEOCL -DUSEOCL_NVIDIA -fopenmp +LFLAGS:=$(LFLAGS) -L$(OCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCL) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp -DUSEOCL_CPU +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLMIC) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -DUSEOCL_MIC +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL +endif +ifeq ($(EXT), AMDOCLGPU) +CFLAGS:=$(CFLAGS) -I$(AMDOCLINCLUDE) -DUSEOCL -DUSEOCL_AMD -fopenmp +LFLAGS:=$(LFLAGS) -L$(AMDOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), CUDA) +CFLAGS:=$(CFLAGS) -I$(CUDAINCLUDE) -DUSECUDA -fopenmp +LFLAGS:=$(LFLAGS) -L$(CUDALIB) -lcudart -fopenmp +endif +endif + +ifeq ($(CC),icpc) +CFLAGS:=$(CFLAGS_ICC) +LFLAGS:=$(LFLAGS_ICC) +ifeq ($(VEC),sse3) +CFLAGS:=$(CFLAGS) -msse3 +endif +ifeq ($(VEC),sse4) +CFLAGS:=$(CFLAGS) -msse4.2 +endif +ifeq ($(VEC),avx128) +CFLAGS:=$(CFLAGS) -mavx -D__USEAVX128__ +endif +ifeq ($(VEC),avx) +CFLAGS:=$(CFLAGS) -mavx +endif +ifeq ($(VEC),avx2) +CFLAGS:=$(CFLAGS) -march=core-avx2 -fma +endif +ifeq ($(OMP),1) +CFLAGS:=$(CFLAGS) -openmp +LFLAGS:=$(LFLAGS) -openmp +endif +ifeq ($(TR1),1) +CFLAGS:=$(CFLAGS) -DUSETRONE -std=c++0x +endif +ifeq ($(EXT), ArBB) +CFLAGS:=$(CFLAGS) -I$(ARBBINCLUDE) -DUSEARBB +LFLAGS:=$(LFLAGS) -L$(ARBBLIB) -larbb -ltbb +endif +ifeq ($(EXT), NVOCL) +CFLAGS:=$(CFLAGS) -I$(OCLINCLUDE) -DUSEOCL -DUSEOCL_NVIDIA -openmp +LFLAGS:=$(LFLAGS) -L$(OCLLIB) -lOpenCL -openmp +endif +ifeq ($(EXT), INTELOCL) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -openmp -DUSEOCL_CPU +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -openmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -openmp +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -openmp +endif +ifeq ($(EXT), INTELOCLMIC) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -DUSEOCL_MIC +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL +endif +ifeq ($(EXT), AMDOCLGPU) +CFLAGS:=$(CFLAGS) -I$(AMDOCLINCLUDE) -DUSEOCL -DUSEOCL_AMD -openmp +LFLAGS:=$(LFLAGS) -L$(AMDOCLLIB) -lOpenCL -openmp +endif +ifeq ($(EXT), MIC_OFFLOAD) +CFLAGS:=$(CFLAGS) -no-ipo -no-ip -DUSEMIC -opt-report-phase:offload -openmp-report2 -offload-option,mic,compiler,\"-Wall -ansi -fPIC -c -ansi-alias -O3 -I$(SRCDIR) -openmp -fma -sox -mP2OPT_hlo_enable_all_mem_refs_prefetch -mP2OPT_hlo_pref_loop_based_prefetch=F\" +LFLAGS:=$(LFLAGS) -no-ipo -no-ip -DUSEMIC -offload-option,mic,link,\"--no-undefined\" +XIAR_OPTS:=$(XIAR_OPTS) -qoffload-build +endif +ifeq ($(EXT), MIC_NATIVE) +CFLAGS:=$(CFLAGS) -mmic -DUSEMIC -fma -sox -mP2OPT_hlo_enable_all_mem_refs_prefetch -mP2OPT_hlo_pref_loop_based_prefetch=F -fp-speculation=fast +LFLAGS:=$(LFLAGS) -mmic +LIB_OPTS:=-mmic +endif +ifeq ($(EXT), CUDA) +CFLAGS:=$(CFLAGS) -I$(CUDAINCLUDE) -DUSECUDA -openmp +LFLAGS:=$(LFLAGS) -L$(CUDALIB) -lcudart -openmp +endif +endif + +ifeq ($(CC),icl) +CFLAGS:=$(CFLAGS_ICL) +LFLAGS:=$(LFLAGS_ICL) +ifeq ($(VEC),sse3) +CFLAGS:=$(CFLAGS) /arch:SSE3 +endif +ifeq ($(VEC),sse4) +CFLAGS:=$(CFLAGS) /arch:SSE4.2 +endif +ifeq ($(VEC),avx128) +CFLAGS:=$(CFLAGS) /arch:AVX /D__USEAVX128__ +endif +ifeq ($(VEC),avx) +CFLAGS:=$(CFLAGS) /arch:AVX +endif +ifeq ($(OMP),1) +CFLAGS:=$(CFLAGS) /Qopenmp +LFLAGS:=$(LFLAGS) /Qopenmp +endif +ifeq ($(EXT), NVOCL) +CFLAGS:=$(CFLAGS) /I$(OCLINCLUDE) /DUSEOCL /DUSEOCL_NVIDIA /Qopenmp +LFLAGS:=$(LFLAGS) /L$(OCLLIB) /Qpenmp +endif +ifeq ($(EXT), INTELOCL) +CFLAGS:=$(CFLAGS) /I$(IOCLINCLUDEWIN) /DUSEOCL /DUSEOCL_INTEL /Qopenmp /DUSEOCL_CPU +LFLAGS:=$(LFLAGS) $(IOCLLIBWIN) /Qopenmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) /I$(IOCLINCLUDEWIN) /DUSEOCL /DUSEOCL_INTEL /Qopenmp +LFLAGS:=$(LFLAGS) $(IOCLLIBWIN) /Qopenmp +endif +ifeq ($(EXT), INTELOCLMIC) +CFLAGS:=$(CFLAGS) /I$(IOCLINCLUDE) /DUSEOCL /DUSEOCL_INTEL /DUSEOCL_MIC +LFLAGS:=$(LFLAGS) $(IOCLLIBWIN) /Qopenmp +endif +ifeq ($(EXT), AMDOCLGPU) +CFLAGS:=$(CFLAGS) /I$(IOCLINCLUDEWIN) /DUSEOCL /DUSEOCL_INTEL /Qopenmp +LFLAGS:=$(LFLAGS) /Qopenmp $(IOCLLIBWIN) +endif +endif + +ifeq ($(CC),mpigxx) +CFLAGS:=$(CFLAGS_GCC) +LFLAGS:=$(LFLAGS_GCC) +CFLAGS:=$(CFLAGS) -DUSE_MPI +MPI=1 +ifeq ($(OMP),1) +CFLAGS:=$(CFLAGS) -fopenmp +LFLAGS:=$(LFLAGS) -fopenmp +endif +ifeq ($(VEC),sse3) +CFLAGS:=$(CFLAGS) -msse3 +endif +ifeq ($(VEC),sse4) +CFLAGS:=$(CFLAGS) -msse4.2 +endif +ifeq ($(VEC),avx128) +CFLAGS:=$(CFLAGS) -mavx -D__USEAVX128__ +endif +ifeq ($(VEC),avx) +CFLAGS:=$(CFLAGS) -mavx +endif +ifeq ($(VEC),avx2) +CFLAGS:=$(CFLAGS) -mavx2 -fma +endif +ifeq ($(VEC),bd_avx128) +CFLAGS:=$(CFLAGS) -mavx -mfma4 -mxop -march=bdver1 -D__USEAVX128__ +endif +ifeq ($(VEC),bd_avx) +CFLAGS:=$(CFLAGS) -mavx -mfma4 -mxop -march=bdver1 +endif +ifeq ($(TR1),1) +CFLAGS:=$(CFLAGS) -DUSETRONE -std=c++0x +endif +ifeq ($(EXT), ArBB) +CFLAGS:=$(CFLAGS) -I$(ARBBINCLUDE) -DUSEARBB +LFLAGS:=$(LFLAGS) -L$(ARBBLIB) -larbb -ltbb +endif +ifeq ($(EXT), NVOCL) +CFLAGS:=$(CFLAGS) -I$(OCLINCLUDE) -DUSEOCL -DUSEOCL_NVIDIA -fopenmp +LFLAGS:=$(LFLAGS) -L$(OCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCL) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp -DUSEOCL_CPU +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLMIC) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -DUSEOCL_MIC +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL +endif +ifeq ($(EXT), AMDOCLGPU) +CFLAGS:=$(CFLAGS) -I$(AMDOCLINCLUDE) -DUSEOCL -DUSEOCL_AMD -fopenmp +LFLAGS:=$(LFLAGS) -L$(AMDOCLLIB) -lOpenCL -fopenmp +endif +endif + +ifeq ($(CC),CC) +CFLAGS:=-target=compute_node $(CFLAGS_GCC) +LFLAGS:=-target=compute_node $(LFLAGS_GCC) +CFLAGS:=$(CFLAGS) -DUSE_MPI +MPI=1 +ifeq ($(OMP),1) +CFLAGS:=$(CFLAGS) -fopenmp +LFLAGS:=$(LFLAGS) -fopenmp +endif +ifeq ($(VEC),sse3) +CFLAGS:=$(CFLAGS) -msse3 +endif +ifeq ($(VEC),sse4) +CFLAGS:=$(CFLAGS) -msse4.2 +endif +ifeq ($(VEC),avx128) +CFLAGS:=$(CFLAGS) -mavx -D__USEAVX128__ +endif +ifeq ($(VEC),avx) +CFLAGS:=$(CFLAGS) -mavx +endif +ifeq ($(VEC),avx2) +CFLAGS:=$(CFLAGS) -mavx2 -fma +endif +ifeq ($(VEC),bd_avx128) +CFLAGS:=$(CFLAGS) -mavx -mfma4 -mxop -march=bdver1 -D__USEAVX128__ +endif +ifeq ($(VEC),bd_avx) +CFLAGS:=$(CFLAGS) -mavx -mfma4 -mxop -march=bdver1 +endif +ifeq ($(TR1),1) +CFLAGS:=$(CFLAGS) -DUSETRONE -std=c++0x +endif +ifeq ($(EXT), ArBB) +CFLAGS:=$(CFLAGS) -I$(ARBBINCLUDE) -DUSEARBB +LFLAGS:=$(LFLAGS) -L$(ARBBLIB) -larbb -ltbb +endif +ifeq ($(EXT), NVOCL) +CFLAGS:=$(CFLAGS) -I$(OCLINCLUDE) -DUSEOCL -DUSEOCL_NVIDIA -fopenmp +LFLAGS:=$(LFLAGS) -L$(OCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCL) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp -DUSEOCL_CPU +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), AMDOCLGPU) +CFLAGS:=$(CFLAGS) -I$(AMDOCLINCLUDE) -DUSEOCL -DUSEOCL_AMD -fopenmp +LFLAGS:=$(LFLAGS) -L$(AMDOCLLIB) -lOpenCL -fopenmp +endif +endif + + +ifeq ($(CC),mpiicpc) +CFLAGS:=$(CFLAGS_ICC) +LFLAGS:=$(LFLAGS_ICC) +CFLAGS:=$(CFLAGS) -DUSE_MPI +MPI=1 +ifeq ($(VEC),sse3) +CFLAGS:=$(CFLAGS) -msse3 +endif +ifeq ($(VEC),sse4) +CFLAGS:=$(CFLAGS) -msse4.2 +endif +ifeq ($(VEC),avx) +CFLAGS:=$(CFLAGS) -mavx +endif +ifeq ($(VEC),avx2) +CFLAGS:=$(CFLAGS) -march=core-avx2 -fma +endif +ifeq ($(VEC),avx128) +CFLAGS:=$(CFLAGS) -mavx -D__USEAVX128__ +endif +ifeq ($(OMP),1) +CFLAGS:=$(CFLAGS) -openmp +LFLAGS:=$(LFLAGS) -openmp +endif +ifeq ($(TR1),1) +CFLAGS:=$(CFLAGS) -DUSETRONE -std=c++0x +endif +ifeq ($(EXT), ArBB) +CFLAGS:=$(CFLAGS) -I$(ARBBINCLUDE) -DUSEARBB +LFLAGS:=$(LFLAGS) -L$(ARBBLIB) -larbb -ltbb +endif +ifeq ($(EXT), NVOCL) +CFLAGS:=$(CFLAGS) -I$(OCLINCLUDE) -DUSEOCL -DUSEOCL_NVIDIA -fopenmp +LFLAGS:=$(LFLAGS) -L$(OCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCL) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp -DUSEOCL_CPU +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -DUSEOCL_MIC +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL +endif +ifeq ($(EXT), AMDOCLGPU) +CFLAGS:=$(CFLAGS) -I$(AMDOCLINCLUDE) -DUSEOCL -DUSEOCL_AMD -fopenmp +LFLAGS:=$(LFLAGS) -L$(AMDOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), MIC_OFFLOAD) +CFLAGS:=$(CFLAGS) -no-ipo -no-ip -DUSEMIC -opt-report-phase:offload -openmp-report2 -offload-option,mic,compiler,\"-Wall -ansi -fPIC -c -ansi-alias -O3 -I$(SRCDIR) -openmp -fma -sox -mP2OPT_hlo_enable_all_mem_refs_prefetch -mP2OPT_hlo_pref_loop_based_prefetch=F\" +LFLAGS:=$(LFLAGS) -no-ipo -no-ip -DUSEMIC -offload-option,mic,link,\"--no-undefined\" +XIAR_OPTS:=$(XIAR_OPTS) -qoffload-build +endif +ifeq ($(EXT), MIC_NATIVE) +CFLAGS:=$(CFLAGS) -mmic -DUSEMIC -fma -sox -mP2OPT_hlo_enable_all_mem_refs_prefetch -mP2OPT_hlo_pref_loop_based_prefetch=F -fp-speculation=fast +LFLAGS:=$(LFLAGS) -mmic +LIB_OPTS:=-mmic +endif +ifeq ($(X86_MIC_SYMMETRIC), 1) +CFLAGS:=$(CFLAGS) -DX86_MIC_SYMMETRIC -DUSEMIC -DMIC_UNROLLING_WIDTH=96 -DMIC_UNROLLING_WIDTH_SP=192 +endif +endif + +ifeq ($(CC),mpiCC) +CFLAGS:=$(CFLAGS_ICC) +LFLAGS:=$(LFLAGS_ICC) +CFLAGS:=$(CFLAGS) -DUSE_MPI +MPI=1 +ifeq ($(VEC),sse3) +CFLAGS:=$(CFLAGS) -msse3 +endif +ifeq ($(VEC),sse4) +CFLAGS:=$(CFLAGS) -msse4.2 +endif +ifeq ($(VEC),avx) +CFLAGS:=$(CFLAGS) -mavx +endif +ifeq ($(VEC),avx2) +CFLAGS:=$(CFLAGS) -march=core-avx2 -fma +endif +ifeq ($(VEC),avx128) +CFLAGS:=$(CFLAGS) -mavx -D__USEAVX128__ +endif +ifeq ($(OMP),1) +CFLAGS:=$(CFLAGS) -openmp +LFLAGS:=$(LFLAGS) -openmp +endif +ifeq ($(TR1),1) +CFLAGS:=$(CFLAGS) -DUSETRONE -std=c++0x +endif +ifeq ($(EXT), ArBB) +CFLAGS:=$(CFLAGS) -I$(ARBBINCLUDE) -DUSEARBB +LFLAGS:=$(LFLAGS) -L$(ARBBLIB) -larbb -ltbb +endif +ifeq ($(EXT), NVOCL) +CFLAGS:=$(CFLAGS) -I$(OCLINCLUDE) -DUSEOCL -DUSEOCL_NVIDIA -fopenmp +LFLAGS:=$(LFLAGS) -L$(OCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCL) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp -DUSEOCL_CPU +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), INTELOCLGPU) +CFLAGS:=$(CFLAGS) -I$(IOCLINCLUDE) -DUSEOCL -DUSEOCL_INTEL -fopenmp +LFLAGS:=$(LFLAGS) -L$(IOCLLIB) -lOpenCL -fopenmp +endif +ifeq ($(EXT), AMDOCLGPU) +CFLAGS:=$(CFLAGS) -I$(AMDOCLINCLUDE) -DUSEOCL -DUSEOCL_AMD -fopenmp +LFLAGS:=$(LFLAGS) -L$(AMDOCLLIB) -lOpenCL -fopenmp +endif +endif + +CFLAGS:=$(CFLAGS) -DDEFAULT_RES_THRESHOLD=$(SLE_RES_THRESH) +CFLAGS:=$(CFLAGS) -DTASKS_PARALLEL_UPDOWN=$(UPDOWN_PARADIMS) +CFLAGS:=$(CFLAGS) -DSG_PARALLEL + +################################################################### +# Builds a lib containing all SG Algorithms +################################################################### +default: +ifeq ($(CC),g++) + mkdir -p tmp/build_native/sgpplib_gcc + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc" "EXT=$(EXT)" +endif +ifeq ($(CC),opencc) + mkdir -p tmp/build_native/sgpplib_opencc + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_opencc "CC=/opt/x86_open64-4.2.5.2/bin/$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_opencc" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/sgpplib_icc + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc" "EXT=$(EXT)" "XIAR_OPTS=$(XIAR_OPTS)" "LIB_OPTS=$(LIB_OPTS)" +endif +ifeq ($(CC),icl) + mkdir -p tmp/build_native/sgpplib_icl + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_icl "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icl" "EXT=$(EXT)" +endif +ifeq ($(CC),CC) + mkdir -p tmp/build_native/sgpplib_cray + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_cray "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_cray" "EXT=$(EXT)" "MPI=$(MPI)" +endif +ifeq ($(CC),mpiicpc) + mkdir -p tmp/build_native/sgpplib_mpiicc + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_mpiicc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpiicc" "EXT=$(EXT)" "MPI=$(MPI)" "XIAR_OPTS=$(XIAR_OPTS)" "LIB_OPTS=$(LIB_OPTS)" +endif +ifeq ($(CC),mpigxx) + mkdir -p tmp/build_native/sgpplib_mpigxx + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_mpigxx "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpigxx" "EXT=$(EXT)" "MPI=$(MPI)" +endif +ifeq ($(CC),mpiCC) + mkdir -p tmp/build_native/sgpplib_ibm + make -j $(JOBS) -f ./../../../src/makefileSGppLIB --directory=./tmp/build_native/sgpplib_ibm "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_ibm" "EXT=$(EXT)" "MPI=$(MPI)" +endif + + +################################################################### +# Builds a Balck Scholes Solver +################################################################### +BSSolver: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/BSSolver_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolver --directory=./tmp/build_native/BSSolver_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=BSSolver_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/BSSolver_icc + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolver --directory=./tmp/build_native/BSSolver_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=BSSolver_ICC" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiicpc) + mkdir -p tmp/build_native/BSSolver_mpiicc + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolverMPI --directory=./tmp/build_native/BSSolver_mpiicc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpiicc.a" "BINNAME=BSSolver_ICC_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),mpigxx) + mkdir -p tmp/build_native/BSSolver_mpigxx + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolverMPI --directory=./tmp/build_native/BSSolver_mpigxx "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpigxx.a" "BINNAME=BSSolver_GCC_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),CC) + mkdir -p tmp/build_native/BSSolver_cray + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolverMPI --directory=./tmp/build_native/BSSolver_cray "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_cray.a" "BINNAME=BSSolver_CRAY_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiCC) + mkdir -p tmp/build_native/BSSolver_ibm + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolverMPI --directory=./tmp/build_native/BSSolver_ibm "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_ibm.a" "BINNAME=BSSolver_IBM_MPI" "EXT=$(EXT)" +endif + +################################################################### +# Builds a Black Scholes Solver with Stretching +################################################################### +BSSolverWithStretching: default + +ifeq ($(CC),g++) + mkdir -p tmp/build_native/BSSolverWithStretching_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolverWithStretching --directory=./tmp/build_native/BSSolverWithStretching_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=BSSolverWithStretching_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/BSSolverWithStretching_icc + make -j $(JOBS) -f ./../../../src/makefileNativeBlackScholesSolverWithStretching --directory=./tmp/build_native/BSSolverWithStretching_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=BSSolverWithStretching_ICC" "EXT=$(EXT)" +endif + +################################################################### +# Builds a Heston Solver +#################################################################### + +HestonSolver: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/HestonSolver_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeHestonSolver --directory=./tmp/build_native/HestonSolver_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=HestonSolver_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/HestonSolver_icc + make -j $(JOBS) -f ./../../../src/makefileNativeHestonSolver --directory=./tmp/build_native/HestonSolver_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=HestonSolver_ICC" "EXT=$(EXT)" +endif +#ifeq ($(CC),mpiicpc) +# Not implemented +#endif + +################################################################### +# Builds a Hull White Solver +################################################################### +HWSolver: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/HWSolver_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeHullWhiteSolver --directory=./tmp/build_native/HWSolver_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=HWSolver_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/HWSolver_icc + make -j $(JOBS) -f ./../../../src/makefileNativeHullWhiteSolver --directory=./tmp/build_native/HWSolver_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=HWSolver_ICC" "EXT=$(EXT)" +endif + +################################################################### +# Builds a Hull White combine Black Scholes Solver +################################################################### +BSHWSolver: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/BSHWSolver_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeBSHWSolver --directory=./tmp/build_native/BSHWSolver_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=BSHWSolver_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/BSHWSolver_icc + make -j $(JOBS) -f ./../../../src/makefileNativeBSHWSolver --directory=./tmp/build_native/BSHWSolver_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=BSHWSolver_ICC" "EXT=$(EXT)" +endif + +################################################################### +# Builds a simple Heat Equation Solver +################################################################### +HESolver: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/HESolver_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeHeatEquationSolver --directory=./tmp/build_native/HESolver_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=HESolver_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/HESolver_icc + make -j $(JOBS) -f ./../../../src/makefileNativeHeatEquationSolver --directory=./tmp/build_native/HESolver_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=HESolver_ICC" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiicpc) + mkdir -p tmp/build_native/HESolver_mpiicc + make -j $(JOBS) -f ./../../../src/makefileNativeHeatEquationSolverMPI --directory=./tmp/build_native/HESolver_mpiicc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpiicc.a" "BINNAME=HESolver_ICC_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),mpigxx) + mkdir -p tmp/build_native/HESolver_mpigxx + make -j $(JOBS) -f ./../../../src/makefileNativeHeatEquationSolverMPI --directory=./tmp/build_native/HESolver_mpigxx "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpigxx.a" "BINNAME=HESolver_GCC_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiCC) + mkdir -p tmp/build_native/HESolver_ibm + make -j $(JOBS) -f ./../../../src/makefileNativeHeatEquationSolverMPI --directory=./tmp/build_native/HESolver_ibm "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_ibm.a" "BINNAME=HESolver_IBM_MPI" "EXT=$(EXT)" +endif + +################################################################### +# Builds a simple Heat Equation Solver (rotating Laser test case) +################################################################### +LaserHESolver2D: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/LaserHESolver2D_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeLaserHeatEquationSolver --directory=./tmp/build_native/LaserHESolver2D_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=LaserHESolver2D_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/LaserHESolver2D_icc + make -j $(JOBS) -f ./../../../src/makefileNativeLaserHeatEquationSolver --directory=./tmp/build_native/LaserHESolver2D_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=LaserHESolver2D_ICC" "EXT=$(EXT)" +endif + +################################################################### +# Builds a simple Heat Equation Solver with Stretching +################################################################### +HESolverWithStretching: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/HESolverWithStretching_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeHeatEquationSolverWithStretching --directory=./tmp/build_native/HESolverWithStretching_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=HESolverWithStretching_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/HESolverWithStretching_icc + make -j $(JOBS) -f ./../../../src/makefileNativeHeatEquationSolverWithStretching --directory=./tmp/build_native/HESolverWithStretching_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=HESolverWithStretching_ICC" "EXT=$(EXT)" +endif + +################################################################### +# Builds a ClassifyBenchmark Application +################################################################### +ClassifyBenchmark: default +ifeq ($(CC),CC) + mkdir -p tmp/build_native/ClassifyBenchmark_cray + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmarkMPI --directory=./tmp/build_native/ClassifyBenchmark_cray "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_cray.a" "BINNAME=ClassifyBenchmark_CRAY_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),g++) + mkdir -p tmp/build_native/ClassifyBenchmark_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmark --directory=./tmp/build_native/ClassifyBenchmark_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=ClassifyBenchmark_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),opencc) + mkdir -p tmp/build_native/ClassifyBenchmark_opencc + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmark --directory=./tmp/build_native/ClassifyBenchmark_opencc "CC=/opt/x86_open64-4.2.5.2/bin/$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_opencc.a" "BINNAME=ClassifyBenchmark_OPENCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/ClassifyBenchmark_icc + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmark --directory=./tmp/build_native/ClassifyBenchmark_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=ClassifyBenchmark_ICC" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiicpc) + mkdir -p tmp/build_native/ClassifyBenchmark_mpiicc + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmarkMPI --directory=./tmp/build_native/ClassifyBenchmark_mpiicc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpiicc.a" "BINNAME=ClassifyBenchmark_ICC_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),mpigxx) + mkdir -p tmp/build_native/ClassifyBenchmark_mpigxx + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmarkMPI --directory=./tmp/build_native/ClassifyBenchmark_mpigxx "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpigxx.a" "BINNAME=ClassifyBenchmark_GCC_MPI" "EXT=$(EXT)" +endif +ifeq ($(CC),icl) + mkdir -p tmp/build_native/ClassifyBenchmark_icl + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmark --directory=./tmp/build_native/ClassifyBenchmark_icl "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icl.lib" "BINNAME=ClassifyBenchmark_ICL.exe" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiCC) + mkdir -p tmp/build_native/ClassifyBenchmark_ibm + make -j $(JOBS) -f ./../../../src/makefileNativeClassifyBenchmarkMPI --directory=./tmp/build_native/ClassifyBenchmark_ibm "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_ibm.a" "BINNAME=ClassifyBenchmark_IBM_MPI" "EXT=$(EXT)" +endif + +################################################################### +# Builds a simple LaplaceTest App +################################################################### +LaplaceTest: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/LaplaceTest_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeLaplaceTest --directory=./tmp/build_native/LaplaceTest_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=LaplaceTest_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/LaplaceTest_icc + make -j $(JOBS) -f ./../../../src/makefileNativeLaplaceTest --directory=./tmp/build_native/LaplaceTest_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=LaplaceTest_ICC" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiicpc) + mkdir -p tmp/build_native/LaplaceTest_mpiicc + make -j $(JOBS) -f ./../../../src/makefileNativeLaplaceTestMPI --directory=./tmp/build_native/LaplaceTest_mpiicc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpiicc.a" "BINNAME=LaplaceTest_MPIICC" "EXT=$(EXT)" +endif + + +################################################################### +# Builds a simple LTwoDotProductTest App +################################################################### +LTwoDotProductTest: default +ifeq ($(CC),g++) + mkdir -p tmp/build_native/LTwoDotProductTest_gcc + make -j $(JOBS) -f ./../../../src/makefileNativeLTwoDotProductTest --directory=./tmp/build_native/LTwoDotProductTest_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=LTwoDotProductTest_GCC" "EXT=$(EXT)" +endif +ifeq ($(CC),icpc) + mkdir -p tmp/build_native/LTwoDotProductTest_icc + make -j $(JOBS) -f ./../../../src/makefileNativeLTwoDotProductTest --directory=./tmp/build_native/LTwoDotProductTest_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=LTwoDotProductTest_ICC" "EXT=$(EXT)" +endif +ifeq ($(CC),mpiicpc) + mkdir -p tmp/build_native/LTwoDotProductTest_mpiicc + make -j $(JOBS) -f ./../../../src/makefileNativeLTwoDotProductTestMPI --directory=./tmp/build_native/LTwoDotProductTest_mpiicc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpiicc.a" "BINNAME=LTwoDotProductTest_MPIICC" "EXT=$(EXT)" +endif + +################################################################### +# Builds a simple LaplaceLTwoDotProductTest App +################################################################### +LaplaceLTwoDotProductTest: default +#ifeq ($(CC),g++) +# mkdir -p tmp/build_native/LaplaceLTwoDotProductTest_gcc +# make -j $(JOBS) -f ./../../../src/makefileNativeLaplaceLTwoDotProductTest --directory=./tmp/build_native/LaplaceLTwoDotProductTest_gcc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_gcc.a" "BINNAME=LaplaceLTwoDotProductTest_GCC" "EXT=$(EXT)" +#endif +#ifeq ($(CC),icpc) +# mkdir -p tmp/build_native/LaplaceLTwoDotProductTest_icc +# make -j $(JOBS) -f ./../../../src/makefileNativeLaplaceLTwoDotProductTest --directory=./tmp/build_native/LaplaceLTwoDotProductTest_icc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_icc.a" "BINNAME=LaplaceLTwoDotProductTest_ICC" "EXT=$(EXT)" +#endif +ifeq ($(CC),mpiicpc) + mkdir -p tmp/build_native/LaplaceLTwoDotProductTest_mpiicc + make -j $(JOBS) -f ./../../../src/makefileNativeLaplaceLTwoDotProductTestMPI --directory=./tmp/build_native/LaplaceLTwoDotProductTest_mpiicc "CC=$(CC)" "CFLAGS=$(CFLAGS)" "LFLAGS=$(LFLAGS)" "LIBNAME=libsgpp_mpiicc.a" "BINNAME=LaplaceLTwoDotProductTest_MPIICC" "EXT=$(EXT)" +endif + + +################################################################### +# test Balck Scholes Solver +################################################################### + +test_BS_1d: + cd bin; \ + ./copyBSSolverToTest.sh; \ + cd ./../tests/CPP_Apps/BSSolver/1d; \ + ./test_BSSolver_1d.sh; + +test_BS_2d: + cd bin; \ + ./copyBSSolverToTest.sh; \ + cd ./../tests/CPP_Apps/BSSolver/2d; \ + ./test_BSSolver_2d.sh; + +test_BS_3d: + cd bin; \ + ./copyBSSolverToTest.sh; \ + cd ./../tests/CPP_Apps/BSSolver/3d; \ + ./test_BSSolver_3d.sh; + +test_BS_all: test_BS_1d test_BS_2d test_BS_3d + echo "executed all BS tests!" + +################################################################### +# test Black Scholes Solver with Stretching +################################################################### + +test_BSS_1d: + cd bin; \ + ./copyBSSolverWithStretchingToTest.sh; \ + cd ./../tests/CPP_Apps/BSSolverWithStretching/1d; \ + ./test_BSSolverWithStretching_1d.sh; + +test_BSS_2d: + cd bin; \ + ./copyBSSolverWithStretchingToTest.sh; \ + cd ./../tests/CPP_Apps/BSSolverWithStretching/2d; \ + ./test_BSSolverWithStretching_2d.sh; + +test_BSS_3d: + cd bin; \ + ./copyBSSolverWithStretchingToTest.sh; \ + cd ./../tests/CPP_Apps/BSSolverWithStretching/3d; \ + ./test_BSSolverWithStretching_3d.sh; + +test_BSS_all: test_BSS_1d test_BSS_2d test_BSS_3d + echo "executed all BS tests!" + +################################################################### +# test Heston Solver +# ################################################################### + +test_Heston_1d: + cd bin; \ + ./copyHestonSolverToTest.sh; \ + cd ./../tests/CPP_Apps/HestonSolver/1d; \ + ./test_HestonSolver_1d.sh; + +test_Heston_2d: + cd bin; \ + ./copyHestonSolverToTest.sh; \ + cd ./../tests/CPP_Apps/HestonSolver/2d; \ + ./test_HestonSolver_2d.sh; + +test_Heston_all: test_Heston_1d test_Heston_2d + echo "executed all Heston tests!" + +################################################################### +# test Combined Hull Wihte Solver Solver +################################################################### + +test_BSHW: + cd bin; \ + ./copyBSHWSolverToTest.sh; \ + cd ./../tests/CPP_Apps/BSHWSolver; \ + ./test_BSHWSolver_2d_cart.sh; + +################################################################### +# test ClassifyBenchmark +################################################################### + +test_ClassifyBenchmark: + cd bin; \ + ./copyClassifyBenchmarkToTest.sh; \ + cd ./../tests/CPP_Apps/ClassifyBenchmark; \ + ./test_ClassifyBenchmark.sh; + +clean: + rm -rfv tmp/build_native diff --git a/adjust_examples.py b/adjust_examples.py index a60d8bf9f..fe787691e 100755 --- a/adjust_examples.py +++ b/adjust_examples.py @@ -9,7 +9,7 @@ dir_path = os.path.dirname(os.path.realpath(__file__)) GLPK_DIR= str(dir_path) + "/glpk" -examples = ["combi_example", "combi_example_faults", "gene_distributed", "gene_distributed_linear"] +examples = ["combi_example", "combi_example_faults", "gene_distributed", "gene_distributed_linear","dealii_example"] for example in examples: pfilein = open(str(dir_path)+ "/distributedcombigrid/examples/" + example + "/Makefile.template" ,'r') temp = pfilein.read() diff --git a/compile.sh b/compile.sh index 99b32a233..6bb82ac27 100755 --- a/compile.sh +++ b/compile.sh @@ -1,2 +1,2 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/glpk/lib -scons -j 8 ISGENE=0 VERBOSE=1 COMPILE_BOOST_TESTS=1 RUN_BOOST_TESTS=1 RUN_CPPLINT=0 BUILD_STATICLIB=0 CC=mpicc.mpich FC=mpifort.mpich CXX=mpicxx.mpich OPT=1 TIMING=0 UNIFORMDECOMPOSITION=1 ENABLEFT=0 #DEBUG_OUTPUT=1 \ No newline at end of file +scons -j 20 ISGENE=0 VERBOSE=1 COMPILE_BOOST_TESTS=1 RUN_BOOST_TESTS=1 RUN_CPPLINT=0 BUILD_STATICLIB=0 CC=mpicc FC=mpifort CXX=mpicxx OPT=1 TIMING=0 UNIFORMDECOMPOSITION=1 ENABLEFT=0 DOC=0 #DEBUG_OUTPUT=1 diff --git a/distributedcombigrid/examples/combi_example/DataConverter.cpp b/distributedcombigrid/examples/combi_example/DataConverter.cpp new file mode 100644 index 000000000..87a5291d3 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/DataConverter.cpp @@ -0,0 +1,252 @@ +#include +#include +#include +#include +#include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" + +#include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" +#include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" +#include +#include + +#include "sgpp/distributedcombigrid/utils/Types.hpp" +#include "DataConverter.hpp" + +using namespace combigrid; + + + Converter::Converter(){}; + void Converter::toParam(std::string _filename, std::string newname){ + namespace pt = boost::property_tree; + + // Create a root + pt::ptree root,ini_root,ini_ct, ini_application, ini_manager; + + // Load the json file in this ptree + try{ + pt::read_json(_filename, root); + int dimx=root.get("General.DimX"); + int dimv=root.get("General.DimV"); + int dim=dimx+dimv; + //lmax: + int refineX=root.get("Case.NRefinementsX"); + int refineV=root.get("Case.NRefinementsV"); + int subX=root.get("Case.NSubdivisionsX.X"); + int subV=root.get("Case.NSubdivisionsV.X"); + LevelVector lma; + + //zur Basis 2 hoch beziehen! + for(int i=0; i("General.PartitionX"); + int partY=root.get("General.PartitionV"); + LevelVector p_{partX,partY}; + + //boundary + + LevelVector bound; + for(int i=0;i("ct.dim",2); + int dimx=root.get("ct.dimx",dim/2); + int dimv=root.get("ct.dimv",dim/2); + + //degree is 1 per default + int degx=root.get("ct.degreex",1); + int degv=root.get("ct.degreev",1); + + // case is per default hyperrectangle and periodic is per default + //nrefinments is set to 0 and the distribution is controlled via subdivisions + + //lmax: + LevelVector lmax(dimx+dimv),p(dimx+dimv); + root.get("ct.lmax") >> lmax; + root.get("ct.p") >> p; + + json_general.put("DimX", dimx); + json_general.put("DimV", dimv); + json_general.put("DegreeX", degx); + json_general.put("DegreeV", degx); + json_general.put("PartitionX", p[0]); + json_general.put("PartitionV", p[1]); + json_general.put("Case","hyperrectangle"); + json_root.add_child("General", json_general); + + json_case.put("NRefinementsX",0); + json_case.put("NRefinementsV",0); + json_case.put("PeriodicX",true); + json_case.put("PeriodicV",true); + jsubX.put("X",pow(2,lmax[0])); + jsubX.put("Y",pow(2,lmax[0])); + jsubX.put("Z",pow(2,lmax[0])); + jsubV.put("X",pow(2,lmax[1])); + jsubV.put("Y",pow(2,lmax[1])); + jsubV.put("Z",pow(2,lmax[1])); + json_case.add_child("NSubdivisionsX",jsubX); + json_case.add_child("NSubdivisionsV",jsubV); + json_root.add_child("Case", json_case); + + json_SpatialDiscretization.put("TriangulationType","FullyDistributed"); + json_SpatialDiscretization.put("MappingX",1); + json_SpatialDiscretization.put("MappingV",1); + json_root.add_child("SpatialDiscretization",json_SpatialDiscretization); + + json_TemporalDiscretization.put("FinalTime",2); + json_TemporalDiscretization.put("CFLNumber",0.15); + json_root.add_child("TemporalDiscretization",json_TemporalDiscretization); + + jsout.put("Tick",0.1); + json_postprocessing.add_child("StandardOutput",jsout); + jVTK.put("Enabled",false); + json_postprocessing.add_child("VTK",jVTK); + + json_root.add_child("Postprocessing", json_postprocessing); + pt::write_json(newname,json_root); + + + } + catch(pt::ini_parser::ini_parser_error error){ + std::cout<< "Not a valid file"; + } + catch(...){ + std::cout << "Something went wrong"; + } + } + + void Converter::toJSON(std::string _fileName, std::string newname,LevelVector l){ + namespace pt = boost::property_tree; + + // Create a root + pt::ptree root; + pt::ptree json_root, json_general, json_case, json_SpatialDiscretization, json_TemporalDiscretization, json_postprocessing; + pt::ptree jsubX, jsubV,jsout, jVTK; + + // Load the ini file in this ptree + try{ + pt::read_ini(_fileName, root); + std::cout << "Name "<<_fileName; + int dim=root.get("ct.dim",2); + int dimx=root.get("ct.dimx",dim/2); + int dimv=root.get("ct.dimv",dim/2); + + //degree is 1 per default + int degx=root.get("ct.degreex",1); + int degv=root.get("ct.degreev",1); + + // case is per default hyperrectangle and periodic is per default + //nrefinments is set to 0 and the distribution is controlled via subdivisions + + //lmax: + LevelVector lmax(dimx+dimv),p(dimx+dimv); + lmax=l; + root.get("ct.p") >> p; + + json_general.put("DimX", dimx); + json_general.put("DimV", dimv); + json_general.put("DegreeX", degx); + json_general.put("DegreeV", degx); + json_general.put("PartitionX", p[0]); + json_general.put("PartitionV", p[1]); + json_general.put("Case","hyperrectangle"); + json_root.add_child("General", json_general); + + json_case.put("NRefinementsX",0); + json_case.put("NRefinementsV",0); + json_case.put("PeriodicX",true); + json_case.put("PeriodicV",true); + jsubX.put("X",pow(2,lmax[0])); + jsubX.put("Y",pow(2,lmax[0])); + jsubX.put("Z",pow(2,lmax[0])); + jsubV.put("X",pow(2,lmax[1])); + jsubV.put("Y",pow(2,lmax[1])); + jsubV.put("Z",pow(2,lmax[1])); + json_case.add_child("NSubdivisionsX",jsubX); + json_case.add_child("NSubdivisionsV",jsubV); + json_root.add_child("Case", json_case); + + json_SpatialDiscretization.put("TriangulationType","FullyDistributed"); + json_SpatialDiscretization.put("MappingX",1); + json_SpatialDiscretization.put("MappingV",1); + json_root.add_child("SpatialDiscretization",json_SpatialDiscretization); + + json_TemporalDiscretization.put("FinalTime",2); + json_TemporalDiscretization.put("CFLNumber",0.15); + json_root.add_child("TemporalDiscretization",json_TemporalDiscretization); + + jsout.put("Tick",0.1); + json_postprocessing.add_child("StandardOutput",jsout); + jVTK.put("Enabled",false); + json_postprocessing.add_child("VTK",jVTK); + + json_root.add_child("Postprocessing", json_postprocessing); + pt::write_json(newname,json_root); + + + } + catch(pt::ini_parser::ini_parser_error error){ + std::cout<< "Not a valid File"; + } + catch(...){ + std::cout << "Something went wrong"; + } + } + diff --git a/distributedcombigrid/examples/combi_example/DataConverter.hpp b/distributedcombigrid/examples/combi_example/DataConverter.hpp new file mode 100644 index 000000000..8b10b6f3f --- /dev/null +++ b/distributedcombigrid/examples/combi_example/DataConverter.hpp @@ -0,0 +1,36 @@ +/* +this function reads in the data from a json file formated like that one from hyperdeal and returns the data +we need for a Combi + +*/ + +#ifndef DATACONVERTER_H +#define DATACONVERTER_H + +#include +#include +#include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" + +#include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" +#include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" + +#include "sgpp/distributedcombigrid/utils/Types.hpp" + +using namespace combigrid; + +class Converter{ + public: + + Converter(); + //reads the data from a json file and stores it in param file + + void toParam(std::string, std::string); + + //reads in data from an ini file and stores it in newname.json file + void toJSON(std::string, std::string); + + // + void toJSON(std::string, std::string, LevelVector ); + +}; +#endif \ No newline at end of file diff --git a/distributedcombigrid/examples/combi_example/Make_copy b/distributedcombigrid/examples/combi_example/Make_copy new file mode 100644 index 000000000..e2ef6ff41 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/Make_copy @@ -0,0 +1,26 @@ +CC=mpicxx +CFLAGS=-std=c++14 -g -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall -DUNIFORMDECOMPOSITION + +SGPP_DIR=/home/sgsscratch/goehrims/combi +GLPK_DIR=/home/sgsscratch/goehrims/combi/glpk +DEAL_II_DIR=/home/sgsscratch/goehrims/matrixfree-build +DEAL_II_INC_DIR=/home/sgsscratch/goehrims/matrixfree +LD_DEALLII=-L$(DEAL_II_DIR)/lib +INC_DEALII=-I$(DEAL_II_INC_DIR)/include -I$(DEAL_II_DIR)/include +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LDIR=$(LD_SGPP) $(LD_GLPK) $(LD_DEALII) +INC=$(INC_SGPP) $(INC_GLPK) $(INC_DEALII) + +LIBS=-lsgppdistributedcombigrid -lboost_serialization + +all: combi_example + +combi_example: combi_example.cpp TaskExample.hpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -o combi_example combi_example.cpp $(LIBS) + +clean: + rm -f *.o out/* combi_example diff --git a/distributedcombigrid/examples/combi_example/Makefile b/distributedcombigrid/examples/combi_example/Makefile new file mode 100644 index 000000000..77c3462e9 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/Makefile @@ -0,0 +1,23 @@ +CC=mpicxx +CFLAGS=-std=c++11 -g -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall -DUNIFORMDECOMPOSITION + +SGPP_DIR=/home/sgsscratch/goehrims/combi +GLPK_DIR=/home/sgsscratch/goehrims/combi/glpk + +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LDIR=$(LD_SGPP) $(LD_GLPK) +INC=$(INC_SGPP) $(INC_GLPK) + +LIBS=-lsgppdistributedcombigrid -lboost_serialization + +all: combi_example + +combi_example: combi_example.cpp TaskExample.hpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -o combi_example combi_example.cpp $(LIBS) + +clean: + rm -f *.o out/* combi_example diff --git a/distributedcombigrid/examples/combi_example/TaskEnsemble.hpp b/distributedcombigrid/examples/combi_example/TaskEnsemble.hpp new file mode 100644 index 000000000..82711402c --- /dev/null +++ b/distributedcombigrid/examples/combi_example/TaskEnsemble.hpp @@ -0,0 +1,234 @@ +/* + * TaskExample.hpp + * + * Created on: Sep 25, 2015 + * Author: heenemo + */ + +#ifndef TASKEXAMPLE_HPP_ +#define TASKEXAMPLE_HPP_ + +#include "sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp" +#include "sgpp/distributedcombigrid/task/Task.hpp" + +namespace combigrid { + +class TaskExample : public Task { + public: + /* if the constructor of the base task class is not sufficient we can provide an + * own implementation. here, we add dt, nsteps, and p as a new parameters. + */ + TaskExample(DimType dim, LevelVector& l, std::vector& boundary, real coeff, + LoadModel* loadModel, real dt, size_t nsteps, IndexVector p = IndexVector(0), + FaultCriterion* faultCrit = (new StaticFaults({0, IndexVector(0), IndexVector(0)}))) + : Task(dim, l, boundary, coeff, loadModel, faultCrit), + dt_(dt), + nsteps_(nsteps), + p_(p), + initialized_(false), + stepsTotal_(0), + dfgEnsemble_(nullptr) {} + + void init(CommunicatorType lcomm, + std::vector decomposition = std::vector()) { + assert(!initialized_); + assert(dfgEnsemble_ == nullptr); + + int lrank; + MPI_Comm_rank(lcomm, &lrank); + + /* create distributed full grid. we try to find a balanced ratio between + * the number of grid points and the number of processes per dimension + * by this very simple algorithm. to keep things simple we require powers + * of two for the number of processes here. */ + int np; + MPI_Comm_size(lcomm, &np); + + // check if power of two + if (!((np > 0) && ((np & (~np + 1)) == np))) + assert(false && "number of processes not power of two"); + + DimType dim = this->getDim(); + IndexVector p(dim, 1); + const LevelVector& l = this->getLevelVector(); + + if (p_.size() == 0) { + // compute domain decomposition + IndexType prod_p(1); + + while (prod_p != static_cast(np)) { + DimType dimMaxRatio = 0; + real maxRatio = 0.0; + + for (DimType k = 0; k < dim; ++k) { + real ratio = std::pow(2.0, l[k]) / p[k]; + + if (ratio > maxRatio) { + maxRatio = ratio; + dimMaxRatio = k; + } + } + + p[dimMaxRatio] *= 2; + prod_p = 1; + + for (DimType k = 0; k < dim; ++k) prod_p *= p[k]; + } + } else { + p = p_; + } + + if (lrank == 0) { + std::cout << "init task " << this->getID() << " with l = " << this->getLevelVector() + << " and p = " << p << std::endl; + } + + // create local subgrid on each process + dfgEnsemble_ = new DFGEnsemble(dim, l, lcomm, this->getBoundary(), p); + + /* loop over local subgrids and set initial values */ + for (int i = 0; i< dfgEnsemble_->getNumFullGrids(); ++i){ + auto& dfg = dfgEnsemble_->getDFG(i); + std::vector& elements = dfg.getElementVector(); + + for (size_t i = 0; i < elements.size(); ++i) { + IndexType globalLinearIndex = dfg.getGlobalLinearIndex(i); + std::vector globalCoords(dim); + dfg.getCoordsGlobal(globalLinearIndex, globalCoords); + elements[i] = TaskExample::myfunction(globalCoords, 0.0); + } + } + + initialized_ = true; + } + + /* this is were the application code kicks in and all the magic happens. + * do whatever you have to do, but make sure that your application uses + * only lcomm or a subset of it as communicator. + * important: don't forget to set the isFinished flag at the end of the computation. + */ + void run(CommunicatorType lcomm) { + assert(initialized_); + + int lrank; + MPI_Comm_rank(lcomm, &lrank); + // TODO if your Example uses another data structure, you need to copy + // the data from elements to that data structure + + /* pseudo timestepping to demonstrate the behaviour of your typical + * time-dependent simulation problem. */ + // TODO replace by your time time stepping algorithm + + for (size_t step = stepsTotal_; step < stepsTotal_ + nsteps_; ++step) { + real time = step * dt_; + + for (int i = 0; i< dfgEnsemble_->getNumFullGrids(); ++i){ + auto& dfg = dfgEnsemble_->getDFG(i); + std::vector& elements = dfg.getElementVector(); + + for (size_t i = 0; i < elements.size(); ++i) { + IndexType globalLinearIndex = dfg.getGlobalLinearIndex(i); + std::vector globalCoords(this->getDim()); + dfg.getCoordsGlobal(globalLinearIndex, globalCoords); + elements[i] = TaskExample::myfunction(globalCoords, time); + } + } + + MPI_Barrier(lcomm); + } + + stepsTotal_ += nsteps_; + + // TODO if your Example uses another data structure, you need to copy + // the data from that data structure to elements/dfg_ + + this->setFinished(true); + } + + DistributedFullGrid& getDistributedFullGrid(int n = 0) { return dfgEnsemble_->getDFG(n); } + + /* this function evaluates the combination solution on a given full grid. + * here, a full grid representation of your task's solution has to be created + * on the process of lcomm with the rank r. + * typically this would require gathering your (in whatever way) distributed + * solution on one process and then converting it to the full grid representation. + * the DistributedFullGrid class offers a convenient function to do this. + */ + void getFullGrid(FullGrid& fg, RankType r, CommunicatorType lcomm, int n = 0) { + assert(fg.getLevels() == getDistributedFullGrid(n).getLevels()); + + getDistributedFullGrid(n).gatherFullGrid(fg, r); + } + + // return the number of grids; here it is the number of grids in ensemble + size_t getNumGrids() override { return powerOfTwo[dim_]; } + + static real myfunction(std::vector& coords, real t) { + real u = std::cos(M_PI * t); + + for (size_t d = 0; d < coords.size(); ++d) u *= std::cos(2.0 * M_PI * coords[d]); + + return u; + + /* + double res = 1.0; + for (size_t i = 0; i < coords.size(); ++i) { + res *= -4.0 * coords[i] * (coords[i] - 1); + } + + + return res; + */ + } + + void setZero() {} + + ~TaskExample() { + if (dfgEnsemble_ != nullptr) delete dfgEnsemble_; + } + + protected: + /* if there are local variables that have to be initialized at construction + * you have to do it here. the worker processes will create the task using + * this constructor before overwriting the variables that are set by the + * manager. here we need to set the initialized variable to make sure it is + * set to false. */ + TaskExample() : initialized_(false), stepsTotal_(1), dfgEnsemble_(nullptr) {} + + private: + friend class boost::serialization::access; + + // new variables that are set by manager. need to be added to serialize + real dt_; + size_t nsteps_; + IndexVector p_; + + // pure local variables that exist only on the worker processes + bool initialized_; + size_t stepsTotal_; + // DistributedFullGrid* dfg_; + DFGEnsemble* dfgEnsemble_; + + /** + * The serialize function has to be extended by the new member variables. + * However this concerns only member variables that need to be exchanged + * between manager and workers. We do not need to add "local" member variables + * that are only needed on either manager or worker processes. + * For serialization of the parent class members, the class must be + * registered with the BOOST_CLASS_EXPORT macro. + */ + template + void serialize(Archive& ar, const unsigned int version) { + // handles serialization of base class + ar& boost::serialization::base_object(*this); + + // add our new variables + ar& dt_; + ar& nsteps_; + ar& p_; + } +}; + +} // namespace combigrid + +#endif /* TASKEXAMPLE_HPP_ */ diff --git a/distributedcombigrid/examples/combi_example/TaskExample.hpp b/distributedcombigrid/examples/combi_example/TaskExample.hpp index 9f9d46ae2..080418319 100644 --- a/distributedcombigrid/examples/combi_example/TaskExample.hpp +++ b/distributedcombigrid/examples/combi_example/TaskExample.hpp @@ -11,6 +11,9 @@ #include "sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp" #include "sgpp/distributedcombigrid/task/Task.hpp" +//#include "../../../hyper.deal.combi/include/functionalities/dynamic_convergence_table.h" +//#include + namespace combigrid { class TaskExample : public Task { @@ -19,7 +22,7 @@ class TaskExample : public Task { * own implementation. here, we add dt, nsteps, and p as a new parameters. */ TaskExample(DimType dim, LevelVector& l, std::vector& boundary, real coeff, - LoadModel* loadModel, real dt, size_t nsteps, IndexVector p = IndexVector(0), + LoadModel* loadModel,std::string filename, real dt, size_t nsteps, IndexVector p = IndexVector(0), FaultCriterion* faultCrit = (new StaticFaults({0, IndexVector(0), IndexVector(0)}))) : Task(dim, l, boundary, coeff, loadModel, faultCrit), dt_(dt), @@ -27,6 +30,7 @@ class TaskExample : public Task { p_(p), initialized_(false), stepsTotal_(0), + _filename(filename), dfg_(NULL) {} void init(CommunicatorType lcomm, @@ -88,14 +92,22 @@ class TaskExample : public Task { /* loop over local subgrid and set initial values */ std::vector& elements = dfg_->getElementVector(); - + for (size_t i = 0; i < elements.size(); ++i) { IndexType globalLinearIndex = dfg_->getGlobalLinearIndex(i); std::vector globalCoords(dim); dfg_->getCoordsGlobal(globalLinearIndex, globalCoords); + elements[i] = TaskExample::myfunction(globalCoords, 0.0); } + + //hyperdeal::DynamicConvergenceTable table; + //TODO: size_x und size_v bestimmen + //Problem problem(lcomm, size_x, size_v, table); + //problem.reinit(_filename); + + initialized_ = true; } @@ -104,20 +116,28 @@ class TaskExample : public Task { * only lcomm or a subset of it as communicator. * important: don't forget to set the isFinished flag at the end of the computation. */ + + void run(CommunicatorType lcomm) { assert(initialized_); - - int lrank; - MPI_Comm_rank(lcomm, &lrank); - + std::cout << "Run of Task"<< this->getID()<& elements = dfg_->getElementVector(); // TODO if your Example uses another data structure, you need to copy // the data from elements to that data structure + + //problem.set_result(); + //problem.reinit_time_integration(stepsTotal_*dt_, (stepsTotal_ + nsteps_)*dt_); - /* pseudo timestepping to demonstrate the behaviour of your typical - * time-dependent simulation problem. */ - // TODO replace by your time time stepping algorithm + // process problem + //problem.solve(); + + //std::vector> result = problem.get_result(); +// TODO if your Example uses another data structure, you need to copy + // the data from that data structure to elements/dfg_ + + /* pseudo timestepping to demonstrate the behaviour of your typical + * time-dependent simulation problem. for (size_t step = stepsTotal_; step < stepsTotal_ + nsteps_; ++step) { real time = step * dt_; @@ -129,13 +149,11 @@ class TaskExample : public Task { } MPI_Barrier(lcomm); - } + }*/ stepsTotal_ += nsteps_; - // TODO if your Example uses another data structure, you need to copy - // the data from that data structure to elements/dfg_ - + this->setFinished(true); } @@ -156,7 +174,7 @@ class TaskExample : public Task { static real myfunction(std::vector& coords, real t) { real u = std::cos(M_PI * t); - + for (size_t d = 0; d < coords.size(); ++d) u *= std::cos(2.0 * M_PI * coords[d]); return u; @@ -178,6 +196,7 @@ class TaskExample : public Task { if (dfg_ != NULL) delete dfg_; } + protected: /* if there are local variables that have to be initialized at construction * you have to do it here. the worker processes will create the task using @@ -192,6 +211,7 @@ class TaskExample : public Task { // new variables that are set by manager. need to be added to serialize real dt_; size_t nsteps_; + std::string _filename; IndexVector p_; // pure local variables that exist only on the worker processes diff --git a/distributedcombigrid/examples/combi_example/car.sh b/distributedcombigrid/examples/combi_example/car.sh new file mode 100755 index 000000000..100ae413d --- /dev/null +++ b/distributedcombigrid/examples/combi_example/car.sh @@ -0,0 +1,8 @@ +#!/bin/bash +cd ../../../ +./compile.sh +cd distributedcombigrid/examples/combi_example +cp Make_copy Makefile +make clean +make +./run.sh \ No newline at end of file diff --git a/distributedcombigrid/examples/combi_example/combi_example.cpp b/distributedcombigrid/examples/combi_example/combi_example.cpp index bf1b887bd..6f469d56f 100644 --- a/distributedcombigrid/examples/combi_example/combi_example.cpp +++ b/distributedcombigrid/examples/combi_example/combi_example.cpp @@ -26,6 +26,8 @@ #include "sgpp/distributedcombigrid/utils/Types.hpp" // include user specific task. this is the interface to your application #include "TaskExample.hpp" +#include "DataConverter.cpp" +#include "DataConverter.hpp" using namespace combigrid; @@ -83,8 +85,13 @@ int main(int argc, char** argv) { dt = cfg.get("application.dt"); nsteps = cfg.get("application.nsteps"); - // todo: read in boundary vector from ctparam + Converter converter; + converter.toParam("p2.json","ctparam2"); + converter.toJSON("ctparam","p2.json"); + // TODO: read in boundary vector from ctparam std::vector boundary(dim, true); + // use no hierarchization in this example + std::vector hierarchizationDims(dim, true); // check whether parallelization vector p agrees with nprocs IndexType checkProcs = 1; @@ -105,18 +112,27 @@ int main(int argc, char** argv) { std::cout << "lmax = " << lmax << std::endl; std::cout << "CombiScheme: " << std::endl; std::cout << combischeme << std::endl; + std::cout << "Levels:" << std::endl; + //std::cout << levels << std::endl; // create Tasks TaskContainer tasks; std::vector taskIDs; for (size_t i = 0; i < levels.size(); i++) { - Task* t = new TaskExample(dim, levels[i], boundary, coeffs[i], loadmodel.get(), dt, nsteps, p); + converter.toJSON("ctparam","p"+std::to_string(i)+".json", levels[i]); + Task* t = new TaskExample(dim, levels[i], boundary, coeffs[i], loadmodel.get(),"p"+std::to_string(i)+".json", dt, nsteps, p); tasks.push_back(t); taskIDs.push_back(t->getID()); } // create combiparameters - CombiParameters params(dim, lmin, lmax, boundary, levels, coeffs, taskIDs, ncombi, 1); + //dim, lmin,lmax kann ich aus json lesen. + //boundary i have to read from ct params but how + // levels is just array of levels between lim and lmax + //taskID for each level we create a new task and here are the IDs + CombiParameters params( dim, lmin, lmax, boundary, levels, + coeffs, hierarchizationDims, taskIDs, ncombi, tasks[0]->getNumGrids());//, reduceCombinationDimsLmin, reduceCombinationDimsLmax); + params.setParallelization(p); // create abstraction for Manager ProcessManager manager(pgroups, tasks, params, std::move(loadmodel)); @@ -140,8 +156,9 @@ int main(int argc, char** argv) { // evaluate solution and // write solution to file - std::string filename("out/solution_" + std::to_string(ncombi) + ".dat"); + std::string filename("out/solution_" + std::to_string(i) + ".out"); Stats::startEvent("manager write solution"); + std::cout <<"now paral"; manager.parallelEval(leval, filename, 0); Stats::stopEvent("manager write solution"); diff --git a/distributedcombigrid/examples/combi_example/ctparam b/distributedcombigrid/examples/combi_example/ctparam index 7a0361011..282073893 100644 --- a/distributedcombigrid/examples/combi_example/ctparam +++ b/distributedcombigrid/examples/combi_example/ctparam @@ -1,10 +1,10 @@ [ct] dim = 2 -lmin = 3 3 -lmax = 10 10 -leval = 5 5 -p = 1 2 -ncombi = 10 +lmin = 2 2 +lmax = 4 5 +leval = 5 5 +p = 1 1 +ncombi = 1 [application] dt = 1e-3 @@ -12,4 +12,4 @@ nsteps = 100 [manager] ngroup = 2 -nprocs = 2 +nprocs = 1 diff --git a/distributedcombigrid/examples/combi_example/ctparam2 b/distributedcombigrid/examples/combi_example/ctparam2 new file mode 100644 index 000000000..b6e46c740 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/ctparam2 @@ -0,0 +1,14 @@ +[ct] +dim=2 +lmin=[1 0 ] +lmax=[1 0 ] +leval=[1 0 ] +p=1 1 + +ncombi=10 +[application] +dt=0.001 +steps=100 +[manager] +ngroup=2 +nprocs=1 diff --git a/distributedcombigrid/examples/combi_example/out/solution.dat b/distributedcombigrid/examples/combi_example/out/solution.dat deleted file mode 100644 index 3eb9c2e26..000000000 --- a/distributedcombigrid/examples/combi_example/out/solution.dat +++ /dev/null @@ -1,30700 +0,0 @@ -0 0 0.999507 -0.0625 0 0.923424 -0.125 0 0.706758 -0.1875 0 0.382495 -0.25 0 5.55112e-17 -0.3125 0 -0.382495 -0.375 0 -0.706758 -0.4375 0 -0.923424 -0.5 0 -0.999507 -0.5625 0 -0.923424 -0.625 0 -0.706758 -0.6875 0 -0.382495 -0.75 0 -1.66533e-16 -0.8125 0 0.382495 -0.875 0 0.706758 -0.9375 0 0.923424 -1 0 0.999507 - -0 0.0625 0.923424 -0.0625 0.0625 0.853132 -0.125 0.0625 0.652959 -0.1875 0.0625 0.353379 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.353379 -0.375 0.0625 -0.652959 -0.4375 0.0625 -0.853132 -0.5 0.0625 -0.923424 -0.5625 0.0625 -0.853132 -0.625 0.0625 -0.652959 -0.6875 0.0625 -0.353379 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.353379 -0.875 0.0625 0.652959 -0.9375 0.0625 0.853132 -1 0.0625 0.923424 - -0 0.125 0.706758 -0.0625 0.125 0.652959 -0.125 0.125 0.499753 -0.1875 0.125 0.270465 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.270465 -0.375 0.125 -0.499753 -0.4375 0.125 -0.652959 -0.5 0.125 -0.706758 -0.5625 0.125 -0.652959 -0.625 0.125 -0.499753 -0.6875 0.125 -0.270465 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.270465 -0.875 0.125 0.499753 -0.9375 0.125 0.652959 -1 0.125 0.706758 - -0 0.1875 0.382495 -0.0625 0.1875 0.353379 -0.125 0.1875 0.270465 -0.1875 0.1875 0.146374 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.146374 -0.375 0.1875 -0.270465 -0.4375 0.1875 -0.353379 -0.5 0.1875 -0.382495 -0.5625 0.1875 -0.353379 -0.625 0.1875 -0.270465 -0.6875 0.1875 -0.146374 -0.75 0.1875 -9.19403e-17 -0.8125 0.1875 0.146374 -0.875 0.1875 0.270465 -0.9375 0.1875 0.353379 -1 0.1875 0.382495 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 1.11022e-16 -0.1875 0.25 5.55112e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 -5.55112e-17 -0.375 0.25 -1.11022e-16 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 -1.11022e-16 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.382495 -0.0625 0.3125 -0.353379 -0.125 0.3125 -0.270465 -0.1875 0.3125 -0.146374 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.146374 -0.375 0.3125 0.270465 -0.4375 0.3125 0.353379 -0.5 0.3125 0.382495 -0.5625 0.3125 0.353379 -0.625 0.3125 0.270465 -0.6875 0.3125 0.146374 -0.75 0.3125 8.32667e-17 -0.8125 0.3125 -0.146374 -0.875 0.3125 -0.270465 -0.9375 0.3125 -0.353379 -1 0.3125 -0.382495 - -0 0.375 -0.706758 -0.0625 0.375 -0.652959 -0.125 0.375 -0.499753 -0.1875 0.375 -0.270465 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.270465 -0.375 0.375 0.499753 -0.4375 0.375 0.652959 -0.5 0.375 0.706758 -0.5625 0.375 0.652959 -0.625 0.375 0.499753 -0.6875 0.375 0.270465 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.270465 -0.875 0.375 -0.499753 -0.9375 0.375 -0.652959 -1 0.375 -0.706758 - -0 0.4375 -0.923424 -0.0625 0.4375 -0.853132 -0.125 0.4375 -0.652959 -0.1875 0.4375 -0.353379 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.353379 -0.375 0.4375 0.652959 -0.4375 0.4375 0.853132 -0.5 0.4375 0.923424 -0.5625 0.4375 0.853132 -0.625 0.4375 0.652959 -0.6875 0.4375 0.353379 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.353379 -0.875 0.4375 -0.652959 -0.9375 0.4375 -0.853132 -1 0.4375 -0.923424 - -0 0.5 -0.999507 -0.0625 0.5 -0.923424 -0.125 0.5 -0.706758 -0.1875 0.5 -0.382495 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.382495 -0.375 0.5 0.706758 -0.4375 0.5 0.923424 -0.5 0.5 0.999507 -0.5625 0.5 0.923424 -0.625 0.5 0.706758 -0.6875 0.5 0.382495 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.382495 -0.875 0.5 -0.706758 -0.9375 0.5 -0.923424 -1 0.5 -0.999507 - -0 0.5625 -0.923424 -0.0625 0.5625 -0.853132 -0.125 0.5625 -0.652959 -0.1875 0.5625 -0.353379 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.353379 -0.375 0.5625 0.652959 -0.4375 0.5625 0.853132 -0.5 0.5625 0.923424 -0.5625 0.5625 0.853132 -0.625 0.5625 0.652959 -0.6875 0.5625 0.353379 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.353379 -0.875 0.5625 -0.652959 -0.9375 0.5625 -0.853132 -1 0.5625 -0.923424 - -0 0.625 -0.706758 -0.0625 0.625 -0.652959 -0.125 0.625 -0.499753 -0.1875 0.625 -0.270465 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.270465 -0.375 0.625 0.499753 -0.4375 0.625 0.652959 -0.5 0.625 0.706758 -0.5625 0.625 0.652959 -0.625 0.625 0.499753 -0.6875 0.625 0.270465 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.270465 -0.875 0.625 -0.499753 -0.9375 0.625 -0.652959 -1 0.625 -0.706758 - -0 0.6875 -0.382495 -0.0625 0.6875 -0.353379 -0.125 0.6875 -0.270465 -0.1875 0.6875 -0.146374 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.146374 -0.375 0.6875 0.270465 -0.4375 0.6875 0.353379 -0.5 0.6875 0.382495 -0.5625 0.6875 0.353379 -0.625 0.6875 0.270465 -0.6875 0.6875 0.146374 -0.75 0.6875 7.63278e-17 -0.8125 0.6875 -0.146374 -0.875 0.6875 -0.270465 -0.9375 0.6875 -0.353379 -1 0.6875 -0.382495 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 2.77556e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 5.55112e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -8.32667e-17 -0.875 0.75 -1.66533e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.382495 -0.0625 0.8125 0.353379 -0.125 0.8125 0.270465 -0.1875 0.8125 0.146374 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.146374 -0.375 0.8125 -0.270465 -0.4375 0.8125 -0.353379 -0.5 0.8125 -0.382495 -0.5625 0.8125 -0.353379 -0.625 0.8125 -0.270465 -0.6875 0.8125 -0.146374 -0.75 0.8125 -8.32667e-17 -0.8125 0.8125 0.146374 -0.875 0.8125 0.270465 -0.9375 0.8125 0.353379 -1 0.8125 0.382495 - -0 0.875 0.706758 -0.0625 0.875 0.652959 -0.125 0.875 0.499753 -0.1875 0.875 0.270465 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.270465 -0.375 0.875 -0.499753 -0.4375 0.875 -0.652959 -0.5 0.875 -0.706758 -0.5625 0.875 -0.652959 -0.625 0.875 -0.499753 -0.6875 0.875 -0.270465 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.270465 -0.875 0.875 0.499753 -0.9375 0.875 0.652959 -1 0.875 0.706758 - -0 0.9375 0.923424 -0.0625 0.9375 0.853132 -0.125 0.9375 0.652959 -0.1875 0.9375 0.353379 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.353379 -0.375 0.9375 -0.652959 -0.4375 0.9375 -0.853132 -0.5 0.9375 -0.923424 -0.5625 0.9375 -0.853132 -0.625 0.9375 -0.652959 -0.6875 0.9375 -0.353379 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.353379 -0.875 0.9375 0.652959 -0.9375 0.9375 0.853132 -1 0.9375 0.923424 - -0 1 0.999507 -0.0625 1 0.923424 -0.125 1 0.706758 -0.1875 1 0.382495 -0.25 1 5.55112e-17 -0.3125 1 -0.382495 -0.375 1 -0.706758 -0.4375 1 -0.923424 -0.5 1 -0.999507 -0.5625 1 -0.923424 -0.625 1 -0.706758 -0.6875 1 -0.382495 -0.75 1 -1.66533e-16 -0.8125 1 0.382495 -0.875 1 0.706758 -0.9375 1 0.923424 -1 1 0.999507 - - -0 0 0.998027 -0.0625 0 0.922056 -0.125 0 0.705711 -0.1875 0 0.381928 -0.25 0 5.55112e-17 -0.3125 0 -0.381928 -0.375 0 -0.705711 -0.4375 0 -0.922056 -0.5 0 -0.998027 -0.5625 0 -0.922056 -0.625 0 -0.705711 -0.6875 0 -0.381928 -0.75 0 -1.66533e-16 -0.8125 0 0.381928 -0.875 0 0.705711 -0.9375 0 0.922056 -1 0 0.998027 - -0 0.0625 0.922056 -0.0625 0.0625 0.851869 -0.125 0.0625 0.651992 -0.1875 0.0625 0.352856 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.352856 -0.375 0.0625 -0.651992 -0.4375 0.0625 -0.851869 -0.5 0.0625 -0.922056 -0.5625 0.0625 -0.851869 -0.625 0.0625 -0.651992 -0.6875 0.0625 -0.352856 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.352856 -0.875 0.0625 0.651992 -0.9375 0.0625 0.851869 -1 0.0625 0.922056 - -0 0.125 0.705711 -0.0625 0.125 0.651992 -0.125 0.125 0.499013 -0.1875 0.125 0.270064 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.270064 -0.375 0.125 -0.499013 -0.4375 0.125 -0.651992 -0.5 0.125 -0.705711 -0.5625 0.125 -0.651992 -0.625 0.125 -0.499013 -0.6875 0.125 -0.270064 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.270064 -0.875 0.125 0.499013 -0.9375 0.125 0.651992 -1 0.125 0.705711 - -0 0.1875 0.381928 -0.0625 0.1875 0.352856 -0.125 0.1875 0.270064 -0.1875 0.1875 0.146158 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.146158 -0.375 0.1875 -0.270064 -0.4375 0.1875 -0.352856 -0.5 0.1875 -0.381928 -0.5625 0.1875 -0.352856 -0.625 0.1875 -0.270064 -0.6875 0.1875 -0.146158 -0.75 0.1875 -9.19403e-17 -0.8125 0.1875 0.146158 -0.875 0.1875 0.270064 -0.9375 0.1875 0.352856 -1 0.1875 0.381928 - -0 0.25 5.55112e-17 -0.0625 0.25 1.11022e-16 -0.125 0.25 0 -0.1875 0.25 5.55112e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 -5.55112e-17 -0.375 0.25 0 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -5.55112e-17 -0.625 0.25 0 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.381928 -0.0625 0.3125 -0.352856 -0.125 0.3125 -0.270064 -0.1875 0.3125 -0.146158 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.146158 -0.375 0.3125 0.270064 -0.4375 0.3125 0.352856 -0.5 0.3125 0.381928 -0.5625 0.3125 0.352856 -0.625 0.3125 0.270064 -0.6875 0.3125 0.146158 -0.75 0.3125 8.32667e-17 -0.8125 0.3125 -0.146158 -0.875 0.3125 -0.270064 -0.9375 0.3125 -0.352856 -1 0.3125 -0.381928 - -0 0.375 -0.705711 -0.0625 0.375 -0.651992 -0.125 0.375 -0.499013 -0.1875 0.375 -0.270064 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.270064 -0.375 0.375 0.499013 -0.4375 0.375 0.651992 -0.5 0.375 0.705711 -0.5625 0.375 0.651992 -0.625 0.375 0.499013 -0.6875 0.375 0.270064 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.270064 -0.875 0.375 -0.499013 -0.9375 0.375 -0.651992 -1 0.375 -0.705711 - -0 0.4375 -0.922056 -0.0625 0.4375 -0.851869 -0.125 0.4375 -0.651992 -0.1875 0.4375 -0.352856 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.352856 -0.375 0.4375 0.651992 -0.4375 0.4375 0.851869 -0.5 0.4375 0.922056 -0.5625 0.4375 0.851869 -0.625 0.4375 0.651992 -0.6875 0.4375 0.352856 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.352856 -0.875 0.4375 -0.651992 -0.9375 0.4375 -0.851869 -1 0.4375 -0.922056 - -0 0.5 -0.998027 -0.0625 0.5 -0.922056 -0.125 0.5 -0.705711 -0.1875 0.5 -0.381928 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.381928 -0.375 0.5 0.705711 -0.4375 0.5 0.922056 -0.5 0.5 0.998027 -0.5625 0.5 0.922056 -0.625 0.5 0.705711 -0.6875 0.5 0.381928 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.381928 -0.875 0.5 -0.705711 -0.9375 0.5 -0.922056 -1 0.5 -0.998027 - -0 0.5625 -0.922056 -0.0625 0.5625 -0.851869 -0.125 0.5625 -0.651992 -0.1875 0.5625 -0.352856 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.352856 -0.375 0.5625 0.651992 -0.4375 0.5625 0.851869 -0.5 0.5625 0.922056 -0.5625 0.5625 0.851869 -0.625 0.5625 0.651992 -0.6875 0.5625 0.352856 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.352856 -0.875 0.5625 -0.651992 -0.9375 0.5625 -0.851869 -1 0.5625 -0.922056 - -0 0.625 -0.705711 -0.0625 0.625 -0.651992 -0.125 0.625 -0.499013 -0.1875 0.625 -0.270064 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.270064 -0.375 0.625 0.499013 -0.4375 0.625 0.651992 -0.5 0.625 0.705711 -0.5625 0.625 0.651992 -0.625 0.625 0.499013 -0.6875 0.625 0.270064 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.270064 -0.875 0.625 -0.499013 -0.9375 0.625 -0.651992 -1 0.625 -0.705711 - -0 0.6875 -0.381928 -0.0625 0.6875 -0.352856 -0.125 0.6875 -0.270064 -0.1875 0.6875 -0.146158 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.146158 -0.375 0.6875 0.270064 -0.4375 0.6875 0.352856 -0.5 0.6875 0.381928 -0.5625 0.6875 0.352856 -0.625 0.6875 0.270064 -0.6875 0.6875 0.146158 -0.75 0.6875 7.63278e-17 -0.8125 0.6875 -0.146158 -0.875 0.6875 -0.270064 -0.9375 0.6875 -0.352856 -1 0.6875 -0.381928 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.66533e-16 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 2.77556e-17 -0.375 0.75 1.66533e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -8.32667e-17 -0.875 0.75 -1.66533e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.381928 -0.0625 0.8125 0.352856 -0.125 0.8125 0.270064 -0.1875 0.8125 0.146158 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.146158 -0.375 0.8125 -0.270064 -0.4375 0.8125 -0.352856 -0.5 0.8125 -0.381928 -0.5625 0.8125 -0.352856 -0.625 0.8125 -0.270064 -0.6875 0.8125 -0.146158 -0.75 0.8125 -8.32667e-17 -0.8125 0.8125 0.146158 -0.875 0.8125 0.270064 -0.9375 0.8125 0.352856 -1 0.8125 0.381928 - -0 0.875 0.705711 -0.0625 0.875 0.651992 -0.125 0.875 0.499013 -0.1875 0.875 0.270064 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.270064 -0.375 0.875 -0.499013 -0.4375 0.875 -0.651992 -0.5 0.875 -0.705711 -0.5625 0.875 -0.651992 -0.625 0.875 -0.499013 -0.6875 0.875 -0.270064 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.270064 -0.875 0.875 0.499013 -0.9375 0.875 0.651992 -1 0.875 0.705711 - -0 0.9375 0.922056 -0.0625 0.9375 0.851869 -0.125 0.9375 0.651992 -0.1875 0.9375 0.352856 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.352856 -0.375 0.9375 -0.651992 -0.4375 0.9375 -0.851869 -0.5 0.9375 -0.922056 -0.5625 0.9375 -0.851869 -0.625 0.9375 -0.651992 -0.6875 0.9375 -0.352856 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.352856 -0.875 0.9375 0.651992 -0.9375 0.9375 0.851869 -1 0.9375 0.922056 - -0 1 0.998027 -0.0625 1 0.922056 -0.125 1 0.705711 -0.1875 1 0.381928 -0.25 1 5.55112e-17 -0.3125 1 -0.381928 -0.375 1 -0.705711 -0.4375 1 -0.922056 -0.5 1 -0.998027 -0.5625 1 -0.922056 -0.625 1 -0.705711 -0.6875 1 -0.381928 -0.75 1 -1.66533e-16 -0.8125 1 0.381928 -0.875 1 0.705711 -0.9375 1 0.922056 -1 1 0.998027 - - -0 0 0.995562 -0.0625 0 0.919779 -0.125 0 0.703969 -0.1875 0 0.380985 -0.25 0 5.55112e-17 -0.3125 0 -0.380985 -0.375 0 -0.703969 -0.4375 0 -0.919779 -0.5 0 -0.995562 -0.5625 0 -0.919779 -0.625 0 -0.703969 -0.6875 0 -0.380985 -0.75 0 -1.66533e-16 -0.8125 0 0.380985 -0.875 0 0.703969 -0.9375 0 0.919779 -1 0 0.995562 - -0 0.0625 0.919779 -0.0625 0.0625 0.849765 -0.125 0.0625 0.650382 -0.1875 0.0625 0.351984 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.351984 -0.375 0.0625 -0.650382 -0.4375 0.0625 -0.849765 -0.5 0.0625 -0.919779 -0.5625 0.0625 -0.849765 -0.625 0.0625 -0.650382 -0.6875 0.0625 -0.351984 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.351984 -0.875 0.0625 0.650382 -0.9375 0.0625 0.849765 -1 0.0625 0.919779 - -0 0.125 0.703969 -0.0625 0.125 0.650382 -0.125 0.125 0.497781 -0.1875 0.125 0.269397 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.269397 -0.375 0.125 -0.497781 -0.4375 0.125 -0.650382 -0.5 0.125 -0.703969 -0.5625 0.125 -0.650382 -0.625 0.125 -0.497781 -0.6875 0.125 -0.269397 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.269397 -0.875 0.125 0.497781 -0.9375 0.125 0.650382 -1 0.125 0.703969 - -0 0.1875 0.380985 -0.0625 0.1875 0.351984 -0.125 0.1875 0.269397 -0.1875 0.1875 0.145797 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.145797 -0.375 0.1875 -0.269397 -0.4375 0.1875 -0.351984 -0.5 0.1875 -0.380985 -0.5625 0.1875 -0.351984 -0.625 0.1875 -0.269397 -0.6875 0.1875 -0.145797 -0.75 0.1875 -9.19403e-17 -0.8125 0.1875 0.145797 -0.875 0.1875 0.269397 -0.9375 0.1875 0.351984 -1 0.1875 0.380985 - -0 0.25 5.55112e-17 -0.0625 0.25 0 -0.125 0.25 0 -0.1875 0.25 5.55112e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 -5.55112e-17 -0.375 0.25 0 -0.4375 0.25 -1.11022e-16 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -5.55112e-17 -0.625 0.25 0 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 5.55112e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.380985 -0.0625 0.3125 -0.351984 -0.125 0.3125 -0.269397 -0.1875 0.3125 -0.145797 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.145797 -0.375 0.3125 0.269397 -0.4375 0.3125 0.351984 -0.5 0.3125 0.380985 -0.5625 0.3125 0.351984 -0.625 0.3125 0.269397 -0.6875 0.3125 0.145797 -0.75 0.3125 8.32667e-17 -0.8125 0.3125 -0.145797 -0.875 0.3125 -0.269397 -0.9375 0.3125 -0.351984 -1 0.3125 -0.380985 - -0 0.375 -0.703969 -0.0625 0.375 -0.650382 -0.125 0.375 -0.497781 -0.1875 0.375 -0.269397 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.269397 -0.375 0.375 0.497781 -0.4375 0.375 0.650382 -0.5 0.375 0.703969 -0.5625 0.375 0.650382 -0.625 0.375 0.497781 -0.6875 0.375 0.269397 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.269397 -0.875 0.375 -0.497781 -0.9375 0.375 -0.650382 -1 0.375 -0.703969 - -0 0.4375 -0.919779 -0.0625 0.4375 -0.849765 -0.125 0.4375 -0.650382 -0.1875 0.4375 -0.351984 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.351984 -0.375 0.4375 0.650382 -0.4375 0.4375 0.849765 -0.5 0.4375 0.919779 -0.5625 0.4375 0.849765 -0.625 0.4375 0.650382 -0.6875 0.4375 0.351984 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.351984 -0.875 0.4375 -0.650382 -0.9375 0.4375 -0.849765 -1 0.4375 -0.919779 - -0 0.5 -0.995562 -0.0625 0.5 -0.919779 -0.125 0.5 -0.703969 -0.1875 0.5 -0.380985 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.380985 -0.375 0.5 0.703969 -0.4375 0.5 0.919779 -0.5 0.5 0.995562 -0.5625 0.5 0.919779 -0.625 0.5 0.703969 -0.6875 0.5 0.380985 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.380985 -0.875 0.5 -0.703969 -0.9375 0.5 -0.919779 -1 0.5 -0.995562 - -0 0.5625 -0.919779 -0.0625 0.5625 -0.849765 -0.125 0.5625 -0.650382 -0.1875 0.5625 -0.351984 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.351984 -0.375 0.5625 0.650382 -0.4375 0.5625 0.849765 -0.5 0.5625 0.919779 -0.5625 0.5625 0.849765 -0.625 0.5625 0.650382 -0.6875 0.5625 0.351984 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.351984 -0.875 0.5625 -0.650382 -0.9375 0.5625 -0.849765 -1 0.5625 -0.919779 - -0 0.625 -0.703969 -0.0625 0.625 -0.650382 -0.125 0.625 -0.497781 -0.1875 0.625 -0.269397 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.269397 -0.375 0.625 0.497781 -0.4375 0.625 0.650382 -0.5 0.625 0.703969 -0.5625 0.625 0.650382 -0.625 0.625 0.497781 -0.6875 0.625 0.269397 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.269397 -0.875 0.625 -0.497781 -0.9375 0.625 -0.650382 -1 0.625 -0.703969 - -0 0.6875 -0.380985 -0.0625 0.6875 -0.351984 -0.125 0.6875 -0.269397 -0.1875 0.6875 -0.145797 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.145797 -0.375 0.6875 0.269397 -0.4375 0.6875 0.351984 -0.5 0.6875 0.380985 -0.5625 0.6875 0.351984 -0.625 0.6875 0.269397 -0.6875 0.6875 0.145797 -0.75 0.6875 7.63278e-17 -0.8125 0.6875 -0.145797 -0.875 0.6875 -0.269397 -0.9375 0.6875 -0.351984 -1 0.6875 -0.380985 - -0 0.75 -1.66533e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -1.66533e-16 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 2.77556e-17 -0.375 0.75 1.66533e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -8.32667e-17 -0.875 0.75 -1.66533e-16 -0.9375 0.75 -1.66533e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.380985 -0.0625 0.8125 0.351984 -0.125 0.8125 0.269397 -0.1875 0.8125 0.145797 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.145797 -0.375 0.8125 -0.269397 -0.4375 0.8125 -0.351984 -0.5 0.8125 -0.380985 -0.5625 0.8125 -0.351984 -0.625 0.8125 -0.269397 -0.6875 0.8125 -0.145797 -0.75 0.8125 -8.32667e-17 -0.8125 0.8125 0.145797 -0.875 0.8125 0.269397 -0.9375 0.8125 0.351984 -1 0.8125 0.380985 - -0 0.875 0.703969 -0.0625 0.875 0.650382 -0.125 0.875 0.497781 -0.1875 0.875 0.269397 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.269397 -0.375 0.875 -0.497781 -0.4375 0.875 -0.650382 -0.5 0.875 -0.703969 -0.5625 0.875 -0.650382 -0.625 0.875 -0.497781 -0.6875 0.875 -0.269397 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.269397 -0.875 0.875 0.497781 -0.9375 0.875 0.650382 -1 0.875 0.703969 - -0 0.9375 0.919779 -0.0625 0.9375 0.849765 -0.125 0.9375 0.650382 -0.1875 0.9375 0.351984 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.351984 -0.375 0.9375 -0.650382 -0.4375 0.9375 -0.849765 -0.5 0.9375 -0.919779 -0.5625 0.9375 -0.849765 -0.625 0.9375 -0.650382 -0.6875 0.9375 -0.351984 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.351984 -0.875 0.9375 0.650382 -0.9375 0.9375 0.849765 -1 0.9375 0.919779 - -0 1 0.995562 -0.0625 1 0.919779 -0.125 1 0.703969 -0.1875 1 0.380985 -0.25 1 5.55112e-17 -0.3125 1 -0.380985 -0.375 1 -0.703969 -0.4375 1 -0.919779 -0.5 1 -0.995562 -0.5625 1 -0.919779 -0.625 1 -0.703969 -0.6875 1 -0.380985 -0.75 1 -1.66533e-16 -0.8125 1 0.380985 -0.875 1 0.703969 -0.9375 1 0.919779 -1 1 0.995562 - - -0 0 0.992115 -0.0625 0 0.916594 -0.125 0 0.701531 -0.1875 0 0.379666 -0.25 0 0 -0.3125 0 -0.379666 -0.375 0 -0.701531 -0.4375 0 -0.916594 -0.5 0 -0.992115 -0.5625 0 -0.916594 -0.625 0 -0.701531 -0.6875 0 -0.379666 -0.75 0 -2.22045e-16 -0.8125 0 0.379666 -0.875 0 0.701531 -0.9375 0 0.916594 -1 0 0.992115 - -0 0.0625 0.916594 -0.0625 0.0625 0.846823 -0.125 0.0625 0.64813 -0.1875 0.0625 0.350766 -0.25 0.0625 2.08167e-17 -0.3125 0.0625 -0.350766 -0.375 0.0625 -0.64813 -0.4375 0.0625 -0.846823 -0.5 0.0625 -0.916594 -0.5625 0.0625 -0.846823 -0.625 0.0625 -0.64813 -0.6875 0.0625 -0.350766 -0.75 0.0625 -2.01228e-16 -0.8125 0.0625 0.350766 -0.875 0.0625 0.64813 -0.9375 0.0625 0.846823 -1 0.0625 0.916594 - -0 0.125 0.701531 -0.0625 0.125 0.64813 -0.125 0.125 0.496057 -0.1875 0.125 0.268464 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.268464 -0.375 0.125 -0.496057 -0.4375 0.125 -0.64813 -0.5 0.125 -0.701531 -0.5625 0.125 -0.64813 -0.625 0.125 -0.496057 -0.6875 0.125 -0.268464 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.268464 -0.875 0.125 0.496057 -0.9375 0.125 0.64813 -1 0.125 0.701531 - -0 0.1875 0.379666 -0.0625 0.1875 0.350766 -0.125 0.1875 0.268464 -0.1875 0.1875 0.145292 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.145292 -0.375 0.1875 -0.268464 -0.4375 0.1875 -0.350766 -0.5 0.1875 -0.379666 -0.5625 0.1875 -0.350766 -0.625 0.1875 -0.268464 -0.6875 0.1875 -0.145292 -0.75 0.1875 -9.19403e-17 -0.8125 0.1875 0.145292 -0.875 0.1875 0.268464 -0.9375 0.1875 0.350766 -1 0.1875 0.379666 - -0 0.25 0 -0.0625 0.25 0 -0.125 0.25 1.11022e-16 -0.1875 0.25 2.77556e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 0 -0.375 0.25 -1.11022e-16 -0.4375 0.25 -1.11022e-16 -0.5 0.25 0 -0.5625 0.25 -5.55112e-17 -0.625 0.25 -1.11022e-16 -0.6875 0.25 -5.55112e-17 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 0 - -0 0.3125 -0.379666 -0.0625 0.3125 -0.350766 -0.125 0.3125 -0.268464 -0.1875 0.3125 -0.145292 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.145292 -0.375 0.3125 0.268464 -0.4375 0.3125 0.350766 -0.5 0.3125 0.379666 -0.5625 0.3125 0.350766 -0.625 0.3125 0.268464 -0.6875 0.3125 0.145292 -0.75 0.3125 9.71445e-17 -0.8125 0.3125 -0.145292 -0.875 0.3125 -0.268464 -0.9375 0.3125 -0.350766 -1 0.3125 -0.379666 - -0 0.375 -0.701531 -0.0625 0.375 -0.64813 -0.125 0.375 -0.496057 -0.1875 0.375 -0.268464 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.268464 -0.375 0.375 0.496057 -0.4375 0.375 0.64813 -0.5 0.375 0.701531 -0.5625 0.375 0.64813 -0.625 0.375 0.496057 -0.6875 0.375 0.268464 -0.75 0.375 1.38778e-16 -0.8125 0.375 -0.268464 -0.875 0.375 -0.496057 -0.9375 0.375 -0.64813 -1 0.375 -0.701531 - -0 0.4375 -0.916594 -0.0625 0.4375 -0.846823 -0.125 0.4375 -0.64813 -0.1875 0.4375 -0.350766 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.350766 -0.375 0.4375 0.64813 -0.4375 0.4375 0.846823 -0.5 0.4375 0.916594 -0.5625 0.4375 0.846823 -0.625 0.4375 0.64813 -0.6875 0.4375 0.350766 -0.75 0.4375 2.08167e-16 -0.8125 0.4375 -0.350766 -0.875 0.4375 -0.64813 -0.9375 0.4375 -0.846823 -1 0.4375 -0.916594 - -0 0.5 -0.992115 -0.0625 0.5 -0.916594 -0.125 0.5 -0.701531 -0.1875 0.5 -0.379666 -0.25 0.5 0 -0.3125 0.5 0.379666 -0.375 0.5 0.701531 -0.4375 0.5 0.916594 -0.5 0.5 0.992115 -0.5625 0.5 0.916594 -0.625 0.5 0.701531 -0.6875 0.5 0.379666 -0.75 0.5 2.22045e-16 -0.8125 0.5 -0.379666 -0.875 0.5 -0.701531 -0.9375 0.5 -0.916594 -1 0.5 -0.992115 - -0 0.5625 -0.916594 -0.0625 0.5625 -0.846823 -0.125 0.5625 -0.64813 -0.1875 0.5625 -0.350766 -0.25 0.5625 -6.93889e-18 -0.3125 0.5625 0.350766 -0.375 0.5625 0.64813 -0.4375 0.5625 0.846823 -0.5 0.5625 0.916594 -0.5625 0.5625 0.846823 -0.625 0.5625 0.64813 -0.6875 0.5625 0.350766 -0.75 0.5625 2.15106e-16 -0.8125 0.5625 -0.350766 -0.875 0.5625 -0.64813 -0.9375 0.5625 -0.846823 -1 0.5625 -0.916594 - -0 0.625 -0.701531 -0.0625 0.625 -0.64813 -0.125 0.625 -0.496057 -0.1875 0.625 -0.268464 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.268464 -0.375 0.625 0.496057 -0.4375 0.625 0.64813 -0.5 0.625 0.701531 -0.5625 0.625 0.64813 -0.625 0.625 0.496057 -0.6875 0.625 0.268464 -0.75 0.625 1.52656e-16 -0.8125 0.625 -0.268464 -0.875 0.625 -0.496057 -0.9375 0.625 -0.64813 -1 0.625 -0.701531 - -0 0.6875 -0.379666 -0.0625 0.6875 -0.350766 -0.125 0.6875 -0.268464 -0.1875 0.6875 -0.145292 -0.25 0.6875 -6.93889e-18 -0.3125 0.6875 0.145292 -0.375 0.6875 0.268464 -0.4375 0.6875 0.350766 -0.5 0.6875 0.379666 -0.5625 0.6875 0.350766 -0.625 0.6875 0.268464 -0.6875 0.6875 0.145292 -0.75 0.6875 1.04083e-16 -0.8125 0.6875 -0.145292 -0.875 0.6875 -0.268464 -0.9375 0.6875 -0.350766 -1 0.6875 -0.379666 - -0 0.75 -2.22045e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 1.11022e-16 -0.5 0.75 2.22045e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 4.93038e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -2.22045e-16 - -0 0.8125 0.379666 -0.0625 0.8125 0.350766 -0.125 0.8125 0.268464 -0.1875 0.8125 0.145292 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.145292 -0.375 0.8125 -0.268464 -0.4375 0.8125 -0.350766 -0.5 0.8125 -0.379666 -0.5625 0.8125 -0.350766 -0.625 0.8125 -0.268464 -0.6875 0.8125 -0.145292 -0.75 0.8125 -9.71445e-17 -0.8125 0.8125 0.145292 -0.875 0.8125 0.268464 -0.9375 0.8125 0.350766 -1 0.8125 0.379666 - -0 0.875 0.701531 -0.0625 0.875 0.64813 -0.125 0.875 0.496057 -0.1875 0.875 0.268464 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.268464 -0.375 0.875 -0.496057 -0.4375 0.875 -0.64813 -0.5 0.875 -0.701531 -0.5625 0.875 -0.64813 -0.625 0.875 -0.496057 -0.6875 0.875 -0.268464 -0.75 0.875 -1.38778e-16 -0.8125 0.875 0.268464 -0.875 0.875 0.496057 -0.9375 0.875 0.64813 -1 0.875 0.701531 - -0 0.9375 0.916594 -0.0625 0.9375 0.846823 -0.125 0.9375 0.64813 -0.1875 0.9375 0.350766 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.350766 -0.375 0.9375 -0.64813 -0.4375 0.9375 -0.846823 -0.5 0.9375 -0.916594 -0.5625 0.9375 -0.846823 -0.625 0.9375 -0.64813 -0.6875 0.9375 -0.350766 -0.75 0.9375 -2.08167e-16 -0.8125 0.9375 0.350766 -0.875 0.9375 0.64813 -0.9375 0.9375 0.846823 -1 0.9375 0.916594 - -0 1 0.992115 -0.0625 1 0.916594 -0.125 1 0.701531 -0.1875 1 0.379666 -0.25 1 0 -0.3125 1 -0.379666 -0.375 1 -0.701531 -0.4375 1 -0.916594 -0.5 1 -0.992115 -0.5625 1 -0.916594 -0.625 1 -0.701531 -0.6875 1 -0.379666 -0.75 1 -2.22045e-16 -0.8125 1 0.379666 -0.875 1 0.701531 -0.9375 1 0.916594 -1 1 0.992115 - - -0 0 0.987688 -0.0625 0 0.912505 -0.125 0 0.698401 -0.1875 0 0.377972 -0.25 0 5.55112e-17 -0.3125 0 -0.377972 -0.375 0 -0.698401 -0.4375 0 -0.912505 -0.5 0 -0.987688 -0.5625 0 -0.912505 -0.625 0 -0.698401 -0.6875 0 -0.377972 -0.75 0 -1.66533e-16 -0.8125 0 0.377972 -0.875 0 0.698401 -0.9375 0 0.912505 -1 0 0.987688 - -0 0.0625 0.912505 -0.0625 0.0625 0.843045 -0.125 0.0625 0.645239 -0.1875 0.0625 0.349201 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.349201 -0.375 0.0625 -0.645239 -0.4375 0.0625 -0.843045 -0.5 0.0625 -0.912505 -0.5625 0.0625 -0.843045 -0.625 0.0625 -0.645239 -0.6875 0.0625 -0.349201 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.349201 -0.875 0.0625 0.645239 -0.9375 0.0625 0.843045 -1 0.0625 0.912505 - -0 0.125 0.698401 -0.0625 0.125 0.645239 -0.125 0.125 0.493844 -0.1875 0.125 0.267267 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.267267 -0.375 0.125 -0.493844 -0.4375 0.125 -0.645239 -0.5 0.125 -0.698401 -0.5625 0.125 -0.645239 -0.625 0.125 -0.493844 -0.6875 0.125 -0.267267 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.267267 -0.875 0.125 0.493844 -0.9375 0.125 0.645239 -1 0.125 0.698401 - -0 0.1875 0.377972 -0.0625 0.1875 0.349201 -0.125 0.1875 0.267267 -0.1875 0.1875 0.144644 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.144644 -0.375 0.1875 -0.267267 -0.4375 0.1875 -0.349201 -0.5 0.1875 -0.377972 -0.5625 0.1875 -0.349201 -0.625 0.1875 -0.267267 -0.6875 0.1875 -0.144644 -0.75 0.1875 -9.19403e-17 -0.8125 0.1875 0.144644 -0.875 0.1875 0.267267 -0.9375 0.1875 0.349201 -1 0.1875 0.377972 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 1.11022e-16 -0.1875 0.25 2.77556e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -1.11022e-16 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 -1.11022e-16 -0.6875 0.25 0 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 0 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.377972 -0.0625 0.3125 -0.349201 -0.125 0.3125 -0.267267 -0.1875 0.3125 -0.144644 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.144644 -0.375 0.3125 0.267267 -0.4375 0.3125 0.349201 -0.5 0.3125 0.377972 -0.5625 0.3125 0.349201 -0.625 0.3125 0.267267 -0.6875 0.3125 0.144644 -0.75 0.3125 8.32667e-17 -0.8125 0.3125 -0.144644 -0.875 0.3125 -0.267267 -0.9375 0.3125 -0.349201 -1 0.3125 -0.377972 - -0 0.375 -0.698401 -0.0625 0.375 -0.645239 -0.125 0.375 -0.493844 -0.1875 0.375 -0.267267 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.267267 -0.375 0.375 0.493844 -0.4375 0.375 0.645239 -0.5 0.375 0.698401 -0.5625 0.375 0.645239 -0.625 0.375 0.493844 -0.6875 0.375 0.267267 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.267267 -0.875 0.375 -0.493844 -0.9375 0.375 -0.645239 -1 0.375 -0.698401 - -0 0.4375 -0.912505 -0.0625 0.4375 -0.843045 -0.125 0.4375 -0.645239 -0.1875 0.4375 -0.349201 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.349201 -0.375 0.4375 0.645239 -0.4375 0.4375 0.843045 -0.5 0.4375 0.912505 -0.5625 0.4375 0.843045 -0.625 0.4375 0.645239 -0.6875 0.4375 0.349201 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.349201 -0.875 0.4375 -0.645239 -0.9375 0.4375 -0.843045 -1 0.4375 -0.912505 - -0 0.5 -0.987688 -0.0625 0.5 -0.912505 -0.125 0.5 -0.698401 -0.1875 0.5 -0.377972 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.377972 -0.375 0.5 0.698401 -0.4375 0.5 0.912505 -0.5 0.5 0.987688 -0.5625 0.5 0.912505 -0.625 0.5 0.698401 -0.6875 0.5 0.377972 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.377972 -0.875 0.5 -0.698401 -0.9375 0.5 -0.912505 -1 0.5 -0.987688 - -0 0.5625 -0.912505 -0.0625 0.5625 -0.843045 -0.125 0.5625 -0.645239 -0.1875 0.5625 -0.349201 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.349201 -0.375 0.5625 0.645239 -0.4375 0.5625 0.843045 -0.5 0.5625 0.912505 -0.5625 0.5625 0.843045 -0.625 0.5625 0.645239 -0.6875 0.5625 0.349201 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.349201 -0.875 0.5625 -0.645239 -0.9375 0.5625 -0.843045 -1 0.5625 -0.912505 - -0 0.625 -0.698401 -0.0625 0.625 -0.645239 -0.125 0.625 -0.493844 -0.1875 0.625 -0.267267 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.267267 -0.375 0.625 0.493844 -0.4375 0.625 0.645239 -0.5 0.625 0.698401 -0.5625 0.625 0.645239 -0.625 0.625 0.493844 -0.6875 0.625 0.267267 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.267267 -0.875 0.625 -0.493844 -0.9375 0.625 -0.645239 -1 0.625 -0.698401 - -0 0.6875 -0.377972 -0.0625 0.6875 -0.349201 -0.125 0.6875 -0.267267 -0.1875 0.6875 -0.144644 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.144644 -0.375 0.6875 0.267267 -0.4375 0.6875 0.349201 -0.5 0.6875 0.377972 -0.5625 0.6875 0.349201 -0.625 0.6875 0.267267 -0.6875 0.6875 0.144644 -0.75 0.6875 7.63278e-17 -0.8125 0.6875 -0.144644 -0.875 0.6875 -0.267267 -0.9375 0.6875 -0.349201 -1 0.6875 -0.377972 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 8.32667e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.66533e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.377972 -0.0625 0.8125 0.349201 -0.125 0.8125 0.267267 -0.1875 0.8125 0.144644 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.144644 -0.375 0.8125 -0.267267 -0.4375 0.8125 -0.349201 -0.5 0.8125 -0.377972 -0.5625 0.8125 -0.349201 -0.625 0.8125 -0.267267 -0.6875 0.8125 -0.144644 -0.75 0.8125 -8.32667e-17 -0.8125 0.8125 0.144644 -0.875 0.8125 0.267267 -0.9375 0.8125 0.349201 -1 0.8125 0.377972 - -0 0.875 0.698401 -0.0625 0.875 0.645239 -0.125 0.875 0.493844 -0.1875 0.875 0.267267 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.267267 -0.375 0.875 -0.493844 -0.4375 0.875 -0.645239 -0.5 0.875 -0.698401 -0.5625 0.875 -0.645239 -0.625 0.875 -0.493844 -0.6875 0.875 -0.267267 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.267267 -0.875 0.875 0.493844 -0.9375 0.875 0.645239 -1 0.875 0.698401 - -0 0.9375 0.912505 -0.0625 0.9375 0.843045 -0.125 0.9375 0.645239 -0.1875 0.9375 0.349201 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.349201 -0.375 0.9375 -0.645239 -0.4375 0.9375 -0.843045 -0.5 0.9375 -0.912505 -0.5625 0.9375 -0.843045 -0.625 0.9375 -0.645239 -0.6875 0.9375 -0.349201 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.349201 -0.875 0.9375 0.645239 -0.9375 0.9375 0.843045 -1 0.9375 0.912505 - -0 1 0.987688 -0.0625 1 0.912505 -0.125 1 0.698401 -0.1875 1 0.377972 -0.25 1 5.55112e-17 -0.3125 1 -0.377972 -0.375 1 -0.698401 -0.4375 1 -0.912505 -0.5 1 -0.987688 -0.5625 1 -0.912505 -0.625 1 -0.698401 -0.6875 1 -0.377972 -0.75 1 -1.66533e-16 -0.8125 1 0.377972 -0.875 1 0.698401 -0.9375 1 0.912505 -1 1 0.987688 - - -0 0 0.982287 -0.0625 0 0.907515 -0.125 0 0.694582 -0.1875 0 0.375905 -0.25 0 0 -0.3125 0 -0.375905 -0.375 0 -0.694582 -0.4375 0 -0.907515 -0.5 0 -0.982287 -0.5625 0 -0.907515 -0.625 0 -0.694582 -0.6875 0 -0.375905 -0.75 0 -2.22045e-16 -0.8125 0 0.375905 -0.875 0 0.694582 -0.9375 0 0.907515 -1 0 0.982287 - -0 0.0625 0.907515 -0.0625 0.0625 0.838435 -0.125 0.0625 0.64171 -0.1875 0.0625 0.347291 -0.25 0.0625 2.08167e-17 -0.3125 0.0625 -0.347291 -0.375 0.0625 -0.64171 -0.4375 0.0625 -0.838435 -0.5 0.0625 -0.907515 -0.5625 0.0625 -0.838435 -0.625 0.0625 -0.64171 -0.6875 0.0625 -0.347291 -0.75 0.0625 -2.01228e-16 -0.8125 0.0625 0.347291 -0.875 0.0625 0.64171 -0.9375 0.0625 0.838435 -1 0.0625 0.907515 - -0 0.125 0.694582 -0.0625 0.125 0.64171 -0.125 0.125 0.491144 -0.1875 0.125 0.265805 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.265805 -0.375 0.125 -0.491144 -0.4375 0.125 -0.64171 -0.5 0.125 -0.694582 -0.5625 0.125 -0.64171 -0.625 0.125 -0.491144 -0.6875 0.125 -0.265805 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.265805 -0.875 0.125 0.491144 -0.9375 0.125 0.64171 -1 0.125 0.694582 - -0 0.1875 0.375905 -0.0625 0.1875 0.347291 -0.125 0.1875 0.265805 -0.1875 0.1875 0.143853 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.143853 -0.375 0.1875 -0.265805 -0.4375 0.1875 -0.347291 -0.5 0.1875 -0.375905 -0.5625 0.1875 -0.347291 -0.625 0.1875 -0.265805 -0.6875 0.1875 -0.143853 -0.75 0.1875 -6.41848e-17 -0.8125 0.1875 0.143853 -0.875 0.1875 0.265805 -0.9375 0.1875 0.347291 -1 0.1875 0.375905 - -0 0.25 0 -0.0625 0.25 5.55112e-17 -0.125 0.25 0 -0.1875 0.25 2.77556e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -1.11022e-16 -0.5 0.25 -1.11022e-16 -0.5625 0.25 -1.11022e-16 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 5.55112e-17 -0.875 0.25 1.11022e-16 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 -0.375905 -0.0625 0.3125 -0.347291 -0.125 0.3125 -0.265805 -0.1875 0.3125 -0.143853 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.143853 -0.375 0.3125 0.265805 -0.4375 0.3125 0.347291 -0.5 0.3125 0.375905 -0.5625 0.3125 0.347291 -0.625 0.3125 0.265805 -0.6875 0.3125 0.143853 -0.75 0.3125 6.93889e-17 -0.8125 0.3125 -0.143853 -0.875 0.3125 -0.265805 -0.9375 0.3125 -0.347291 -1 0.3125 -0.375905 - -0 0.375 -0.694582 -0.0625 0.375 -0.64171 -0.125 0.375 -0.491144 -0.1875 0.375 -0.265805 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.265805 -0.375 0.375 0.491144 -0.4375 0.375 0.64171 -0.5 0.375 0.694582 -0.5625 0.375 0.64171 -0.625 0.375 0.491144 -0.6875 0.375 0.265805 -0.75 0.375 1.38778e-16 -0.8125 0.375 -0.265805 -0.875 0.375 -0.491144 -0.9375 0.375 -0.64171 -1 0.375 -0.694582 - -0 0.4375 -0.907515 -0.0625 0.4375 -0.838435 -0.125 0.4375 -0.64171 -0.1875 0.4375 -0.347291 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.347291 -0.375 0.4375 0.64171 -0.4375 0.4375 0.838435 -0.5 0.4375 0.907515 -0.5625 0.4375 0.838435 -0.625 0.4375 0.64171 -0.6875 0.4375 0.347291 -0.75 0.4375 2.08167e-16 -0.8125 0.4375 -0.347291 -0.875 0.4375 -0.64171 -0.9375 0.4375 -0.838435 -1 0.4375 -0.907515 - -0 0.5 -0.982287 -0.0625 0.5 -0.907515 -0.125 0.5 -0.694582 -0.1875 0.5 -0.375905 -0.25 0.5 0 -0.3125 0.5 0.375905 -0.375 0.5 0.694582 -0.4375 0.5 0.907515 -0.5 0.5 0.982287 -0.5625 0.5 0.907515 -0.625 0.5 0.694582 -0.6875 0.5 0.375905 -0.75 0.5 2.22045e-16 -0.8125 0.5 -0.375905 -0.875 0.5 -0.694582 -0.9375 0.5 -0.907515 -1 0.5 -0.982287 - -0 0.5625 -0.907515 -0.0625 0.5625 -0.838435 -0.125 0.5625 -0.64171 -0.1875 0.5625 -0.347291 -0.25 0.5625 -6.93889e-18 -0.3125 0.5625 0.347291 -0.375 0.5625 0.64171 -0.4375 0.5625 0.838435 -0.5 0.5625 0.907515 -0.5625 0.5625 0.838435 -0.625 0.5625 0.64171 -0.6875 0.5625 0.347291 -0.75 0.5625 2.15106e-16 -0.8125 0.5625 -0.347291 -0.875 0.5625 -0.64171 -0.9375 0.5625 -0.838435 -1 0.5625 -0.907515 - -0 0.625 -0.694582 -0.0625 0.625 -0.64171 -0.125 0.625 -0.491144 -0.1875 0.625 -0.265805 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.265805 -0.375 0.625 0.491144 -0.4375 0.625 0.64171 -0.5 0.625 0.694582 -0.5625 0.625 0.64171 -0.625 0.625 0.491144 -0.6875 0.625 0.265805 -0.75 0.625 1.52656e-16 -0.8125 0.625 -0.265805 -0.875 0.625 -0.491144 -0.9375 0.625 -0.64171 -1 0.625 -0.694582 - -0 0.6875 -0.375905 -0.0625 0.6875 -0.347291 -0.125 0.6875 -0.265805 -0.1875 0.6875 -0.143853 -0.25 0.6875 -6.93889e-18 -0.3125 0.6875 0.143853 -0.375 0.6875 0.265805 -0.4375 0.6875 0.347291 -0.5 0.6875 0.375905 -0.5625 0.6875 0.347291 -0.625 0.6875 0.265805 -0.6875 0.6875 0.143853 -0.75 0.6875 7.63278e-17 -0.8125 0.6875 -0.143853 -0.875 0.6875 -0.265805 -0.9375 0.6875 -0.347291 -1 0.6875 -0.375905 - -0 0.75 -2.22045e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -1.66533e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 8.32667e-17 -0.75 0.75 4.93038e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -2.22045e-16 -1 0.75 -2.22045e-16 - -0 0.8125 0.375905 -0.0625 0.8125 0.347291 -0.125 0.8125 0.265805 -0.1875 0.8125 0.143853 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.143853 -0.375 0.8125 -0.265805 -0.4375 0.8125 -0.347291 -0.5 0.8125 -0.375905 -0.5625 0.8125 -0.347291 -0.625 0.8125 -0.265805 -0.6875 0.8125 -0.143853 -0.75 0.8125 -6.93889e-17 -0.8125 0.8125 0.143853 -0.875 0.8125 0.265805 -0.9375 0.8125 0.347291 -1 0.8125 0.375905 - -0 0.875 0.694582 -0.0625 0.875 0.64171 -0.125 0.875 0.491144 -0.1875 0.875 0.265805 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.265805 -0.375 0.875 -0.491144 -0.4375 0.875 -0.64171 -0.5 0.875 -0.694582 -0.5625 0.875 -0.64171 -0.625 0.875 -0.491144 -0.6875 0.875 -0.265805 -0.75 0.875 -1.38778e-16 -0.8125 0.875 0.265805 -0.875 0.875 0.491144 -0.9375 0.875 0.64171 -1 0.875 0.694582 - -0 0.9375 0.907515 -0.0625 0.9375 0.838435 -0.125 0.9375 0.64171 -0.1875 0.9375 0.347291 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.347291 -0.375 0.9375 -0.64171 -0.4375 0.9375 -0.838435 -0.5 0.9375 -0.907515 -0.5625 0.9375 -0.838435 -0.625 0.9375 -0.64171 -0.6875 0.9375 -0.347291 -0.75 0.9375 -2.08167e-16 -0.8125 0.9375 0.347291 -0.875 0.9375 0.64171 -0.9375 0.9375 0.838435 -1 0.9375 0.907515 - -0 1 0.982287 -0.0625 1 0.907515 -0.125 1 0.694582 -0.1875 1 0.375905 -0.25 1 0 -0.3125 1 -0.375905 -0.375 1 -0.694582 -0.4375 1 -0.907515 -0.5 1 -0.982287 -0.5625 1 -0.907515 -0.625 1 -0.694582 -0.6875 1 -0.375905 -0.75 1 -2.22045e-16 -0.8125 1 0.375905 -0.875 1 0.694582 -0.9375 1 0.907515 -1 1 0.982287 - - -0 0 0.975917 -0.0625 0 0.90163 -0.125 0 0.690077 -0.1875 0 0.373467 -0.25 0 5.55112e-17 -0.3125 0 -0.373467 -0.375 0 -0.690077 -0.4375 0 -0.90163 -0.5 0 -0.975917 -0.5625 0 -0.90163 -0.625 0 -0.690077 -0.6875 0 -0.373467 -0.75 0 -1.66533e-16 -0.8125 0 0.373467 -0.875 0 0.690077 -0.9375 0 0.90163 -1 0 0.975917 - -0 0.0625 0.90163 -0.0625 0.0625 0.832997 -0.125 0.0625 0.637548 -0.1875 0.0625 0.345039 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.345039 -0.375 0.0625 -0.637548 -0.4375 0.0625 -0.832997 -0.5 0.0625 -0.90163 -0.5625 0.0625 -0.832997 -0.625 0.0625 -0.637548 -0.6875 0.0625 -0.345039 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.345039 -0.875 0.0625 0.637548 -0.9375 0.0625 0.832997 -1 0.0625 0.90163 - -0 0.125 0.690077 -0.0625 0.125 0.637548 -0.125 0.125 0.487958 -0.1875 0.125 0.264081 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.264081 -0.375 0.125 -0.487958 -0.4375 0.125 -0.637548 -0.5 0.125 -0.690077 -0.5625 0.125 -0.637548 -0.625 0.125 -0.487958 -0.6875 0.125 -0.264081 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.264081 -0.875 0.125 0.487958 -0.9375 0.125 0.637548 -1 0.125 0.690077 - -0 0.1875 0.373467 -0.0625 0.1875 0.345039 -0.125 0.1875 0.264081 -0.1875 0.1875 0.14292 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.14292 -0.375 0.1875 -0.264081 -0.4375 0.1875 -0.345039 -0.5 0.1875 -0.373467 -0.5625 0.1875 -0.345039 -0.625 0.1875 -0.264081 -0.6875 0.1875 -0.14292 -0.75 0.1875 -6.41848e-17 -0.8125 0.1875 0.14292 -0.875 0.1875 0.264081 -0.9375 0.1875 0.345039 -1 0.1875 0.373467 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 1.11022e-16 -0.1875 0.25 0 -0.25 0.25 6.16298e-33 -0.3125 0.25 0 -0.375 0.25 -1.11022e-16 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 -1.11022e-16 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 5.55112e-17 -0.875 0.25 0 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.373467 -0.0625 0.3125 -0.345039 -0.125 0.3125 -0.264081 -0.1875 0.3125 -0.14292 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.14292 -0.375 0.3125 0.264081 -0.4375 0.3125 0.345039 -0.5 0.3125 0.373467 -0.5625 0.3125 0.345039 -0.625 0.3125 0.264081 -0.6875 0.3125 0.14292 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.14292 -0.875 0.3125 -0.264081 -0.9375 0.3125 -0.345039 -1 0.3125 -0.373467 - -0 0.375 -0.690077 -0.0625 0.375 -0.637548 -0.125 0.375 -0.487958 -0.1875 0.375 -0.264081 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.264081 -0.375 0.375 0.487958 -0.4375 0.375 0.637548 -0.5 0.375 0.690077 -0.5625 0.375 0.637548 -0.625 0.375 0.487958 -0.6875 0.375 0.264081 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.264081 -0.875 0.375 -0.487958 -0.9375 0.375 -0.637548 -1 0.375 -0.690077 - -0 0.4375 -0.90163 -0.0625 0.4375 -0.832997 -0.125 0.4375 -0.637548 -0.1875 0.4375 -0.345039 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.345039 -0.375 0.4375 0.637548 -0.4375 0.4375 0.832997 -0.5 0.4375 0.90163 -0.5625 0.4375 0.832997 -0.625 0.4375 0.637548 -0.6875 0.4375 0.345039 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.345039 -0.875 0.4375 -0.637548 -0.9375 0.4375 -0.832997 -1 0.4375 -0.90163 - -0 0.5 -0.975917 -0.0625 0.5 -0.90163 -0.125 0.5 -0.690077 -0.1875 0.5 -0.373467 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.373467 -0.375 0.5 0.690077 -0.4375 0.5 0.90163 -0.5 0.5 0.975917 -0.5625 0.5 0.90163 -0.625 0.5 0.690077 -0.6875 0.5 0.373467 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.373467 -0.875 0.5 -0.690077 -0.9375 0.5 -0.90163 -1 0.5 -0.975917 - -0 0.5625 -0.90163 -0.0625 0.5625 -0.832997 -0.125 0.5625 -0.637548 -0.1875 0.5625 -0.345039 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.345039 -0.375 0.5625 0.637548 -0.4375 0.5625 0.832997 -0.5 0.5625 0.90163 -0.5625 0.5625 0.832997 -0.625 0.5625 0.637548 -0.6875 0.5625 0.345039 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.345039 -0.875 0.5625 -0.637548 -0.9375 0.5625 -0.832997 -1 0.5625 -0.90163 - -0 0.625 -0.690077 -0.0625 0.625 -0.637548 -0.125 0.625 -0.487958 -0.1875 0.625 -0.264081 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.264081 -0.375 0.625 0.487958 -0.4375 0.625 0.637548 -0.5 0.625 0.690077 -0.5625 0.625 0.637548 -0.625 0.625 0.487958 -0.6875 0.625 0.264081 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.264081 -0.875 0.625 -0.487958 -0.9375 0.625 -0.637548 -1 0.625 -0.690077 - -0 0.6875 -0.373467 -0.0625 0.6875 -0.345039 -0.125 0.6875 -0.264081 -0.1875 0.6875 -0.14292 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.14292 -0.375 0.6875 0.264081 -0.4375 0.6875 0.345039 -0.5 0.6875 0.373467 -0.5625 0.6875 0.345039 -0.625 0.6875 0.264081 -0.6875 0.6875 0.14292 -0.75 0.6875 4.85723e-17 -0.8125 0.6875 -0.14292 -0.875 0.6875 -0.264081 -0.9375 0.6875 -0.345039 -1 0.6875 -0.373467 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 5.55112e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -1.66533e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.373467 -0.0625 0.8125 0.345039 -0.125 0.8125 0.264081 -0.1875 0.8125 0.14292 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.14292 -0.375 0.8125 -0.264081 -0.4375 0.8125 -0.345039 -0.5 0.8125 -0.373467 -0.5625 0.8125 -0.345039 -0.625 0.8125 -0.264081 -0.6875 0.8125 -0.14292 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.14292 -0.875 0.8125 0.264081 -0.9375 0.8125 0.345039 -1 0.8125 0.373467 - -0 0.875 0.690077 -0.0625 0.875 0.637548 -0.125 0.875 0.487958 -0.1875 0.875 0.264081 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.264081 -0.375 0.875 -0.487958 -0.4375 0.875 -0.637548 -0.5 0.875 -0.690077 -0.5625 0.875 -0.637548 -0.625 0.875 -0.487958 -0.6875 0.875 -0.264081 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.264081 -0.875 0.875 0.487958 -0.9375 0.875 0.637548 -1 0.875 0.690077 - -0 0.9375 0.90163 -0.0625 0.9375 0.832997 -0.125 0.9375 0.637548 -0.1875 0.9375 0.345039 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.345039 -0.375 0.9375 -0.637548 -0.4375 0.9375 -0.832997 -0.5 0.9375 -0.90163 -0.5625 0.9375 -0.832997 -0.625 0.9375 -0.637548 -0.6875 0.9375 -0.345039 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.345039 -0.875 0.9375 0.637548 -0.9375 0.9375 0.832997 -1 0.9375 0.90163 - -0 1 0.975917 -0.0625 1 0.90163 -0.125 1 0.690077 -0.1875 1 0.373467 -0.25 1 5.55112e-17 -0.3125 1 -0.373467 -0.375 1 -0.690077 -0.4375 1 -0.90163 -0.5 1 -0.975917 -0.5625 1 -0.90163 -0.625 1 -0.690077 -0.6875 1 -0.373467 -0.75 1 -1.66533e-16 -0.8125 1 0.373467 -0.875 1 0.690077 -0.9375 1 0.90163 -1 1 0.975917 - - -0 0 0.968583 -0.0625 0 0.894854 -0.125 0 0.684892 -0.1875 0 0.370661 -0.25 0 5.55112e-17 -0.3125 0 -0.370661 -0.375 0 -0.684892 -0.4375 0 -0.894854 -0.5 0 -0.968583 -0.5625 0 -0.894854 -0.625 0 -0.684892 -0.6875 0 -0.370661 -0.75 0 -1.66533e-16 -0.8125 0 0.370661 -0.875 0 0.684892 -0.9375 0 0.894854 -1 0 0.968583 - -0 0.0625 0.894854 -0.0625 0.0625 0.826737 -0.125 0.0625 0.632757 -0.1875 0.0625 0.342446 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.342446 -0.375 0.0625 -0.632757 -0.4375 0.0625 -0.826737 -0.5 0.0625 -0.894854 -0.5625 0.0625 -0.826737 -0.625 0.0625 -0.632757 -0.6875 0.0625 -0.342446 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.342446 -0.875 0.0625 0.632757 -0.9375 0.0625 0.826737 -1 0.0625 0.894854 - -0 0.125 0.684892 -0.0625 0.125 0.632757 -0.125 0.125 0.484292 -0.1875 0.125 0.262097 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.262097 -0.375 0.125 -0.484292 -0.4375 0.125 -0.632757 -0.5 0.125 -0.684892 -0.5625 0.125 -0.632757 -0.625 0.125 -0.484292 -0.6875 0.125 -0.262097 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.262097 -0.875 0.125 0.484292 -0.9375 0.125 0.632757 -1 0.125 0.684892 - -0 0.1875 0.370661 -0.0625 0.1875 0.342446 -0.125 0.1875 0.262097 -0.1875 0.1875 0.141846 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.141846 -0.375 0.1875 -0.262097 -0.4375 0.1875 -0.342446 -0.5 0.1875 -0.370661 -0.5625 0.1875 -0.342446 -0.625 0.1875 -0.262097 -0.6875 0.1875 -0.141846 -0.75 0.1875 -6.41848e-17 -0.8125 0.1875 0.141846 -0.875 0.1875 0.262097 -0.9375 0.1875 0.342446 -1 0.1875 0.370661 - -0 0.25 5.55112e-17 -0.0625 0.25 0 -0.125 0.25 1.11022e-16 -0.1875 0.25 0 -0.25 0.25 6.16298e-33 -0.3125 0.25 0 -0.375 0.25 -1.11022e-16 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 0 -0.6875 0.25 -5.55112e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 1.11022e-16 -0.9375 0.25 0 -1 0.25 5.55112e-17 - -0 0.3125 -0.370661 -0.0625 0.3125 -0.342446 -0.125 0.3125 -0.262097 -0.1875 0.3125 -0.141846 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.141846 -0.375 0.3125 0.262097 -0.4375 0.3125 0.342446 -0.5 0.3125 0.370661 -0.5625 0.3125 0.342446 -0.625 0.3125 0.262097 -0.6875 0.3125 0.141846 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.141846 -0.875 0.3125 -0.262097 -0.9375 0.3125 -0.342446 -1 0.3125 -0.370661 - -0 0.375 -0.684892 -0.0625 0.375 -0.632757 -0.125 0.375 -0.484292 -0.1875 0.375 -0.262097 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.262097 -0.375 0.375 0.484292 -0.4375 0.375 0.632757 -0.5 0.375 0.684892 -0.5625 0.375 0.632757 -0.625 0.375 0.484292 -0.6875 0.375 0.262097 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.262097 -0.875 0.375 -0.484292 -0.9375 0.375 -0.632757 -1 0.375 -0.684892 - -0 0.4375 -0.894854 -0.0625 0.4375 -0.826737 -0.125 0.4375 -0.632757 -0.1875 0.4375 -0.342446 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.342446 -0.375 0.4375 0.632757 -0.4375 0.4375 0.826737 -0.5 0.4375 0.894854 -0.5625 0.4375 0.826737 -0.625 0.4375 0.632757 -0.6875 0.4375 0.342446 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.342446 -0.875 0.4375 -0.632757 -0.9375 0.4375 -0.826737 -1 0.4375 -0.894854 - -0 0.5 -0.968583 -0.0625 0.5 -0.894854 -0.125 0.5 -0.684892 -0.1875 0.5 -0.370661 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.370661 -0.375 0.5 0.684892 -0.4375 0.5 0.894854 -0.5 0.5 0.968583 -0.5625 0.5 0.894854 -0.625 0.5 0.684892 -0.6875 0.5 0.370661 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.370661 -0.875 0.5 -0.684892 -0.9375 0.5 -0.894854 -1 0.5 -0.968583 - -0 0.5625 -0.894854 -0.0625 0.5625 -0.826737 -0.125 0.5625 -0.632757 -0.1875 0.5625 -0.342446 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.342446 -0.375 0.5625 0.632757 -0.4375 0.5625 0.826737 -0.5 0.5625 0.894854 -0.5625 0.5625 0.826737 -0.625 0.5625 0.632757 -0.6875 0.5625 0.342446 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.342446 -0.875 0.5625 -0.632757 -0.9375 0.5625 -0.826737 -1 0.5625 -0.894854 - -0 0.625 -0.684892 -0.0625 0.625 -0.632757 -0.125 0.625 -0.484292 -0.1875 0.625 -0.262097 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.262097 -0.375 0.625 0.484292 -0.4375 0.625 0.632757 -0.5 0.625 0.684892 -0.5625 0.625 0.632757 -0.625 0.625 0.484292 -0.6875 0.625 0.262097 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.262097 -0.875 0.625 -0.484292 -0.9375 0.625 -0.632757 -1 0.625 -0.684892 - -0 0.6875 -0.370661 -0.0625 0.6875 -0.342446 -0.125 0.6875 -0.262097 -0.1875 0.6875 -0.141846 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.141846 -0.375 0.6875 0.262097 -0.4375 0.6875 0.342446 -0.5 0.6875 0.370661 -0.5625 0.6875 0.342446 -0.625 0.6875 0.262097 -0.6875 0.6875 0.141846 -0.75 0.6875 4.85723e-17 -0.8125 0.6875 -0.141846 -0.875 0.6875 -0.262097 -0.9375 0.6875 -0.342446 -1 0.6875 -0.370661 - -0 0.75 -1.66533e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 2.77556e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -2.22045e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.370661 -0.0625 0.8125 0.342446 -0.125 0.8125 0.262097 -0.1875 0.8125 0.141846 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.141846 -0.375 0.8125 -0.262097 -0.4375 0.8125 -0.342446 -0.5 0.8125 -0.370661 -0.5625 0.8125 -0.342446 -0.625 0.8125 -0.262097 -0.6875 0.8125 -0.141846 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.141846 -0.875 0.8125 0.262097 -0.9375 0.8125 0.342446 -1 0.8125 0.370661 - -0 0.875 0.684892 -0.0625 0.875 0.632757 -0.125 0.875 0.484292 -0.1875 0.875 0.262097 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.262097 -0.375 0.875 -0.484292 -0.4375 0.875 -0.632757 -0.5 0.875 -0.684892 -0.5625 0.875 -0.632757 -0.625 0.875 -0.484292 -0.6875 0.875 -0.262097 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.262097 -0.875 0.875 0.484292 -0.9375 0.875 0.632757 -1 0.875 0.684892 - -0 0.9375 0.894854 -0.0625 0.9375 0.826737 -0.125 0.9375 0.632757 -0.1875 0.9375 0.342446 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.342446 -0.375 0.9375 -0.632757 -0.4375 0.9375 -0.826737 -0.5 0.9375 -0.894854 -0.5625 0.9375 -0.826737 -0.625 0.9375 -0.632757 -0.6875 0.9375 -0.342446 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.342446 -0.875 0.9375 0.632757 -0.9375 0.9375 0.826737 -1 0.9375 0.894854 - -0 1 0.968583 -0.0625 1 0.894854 -0.125 1 0.684892 -0.1875 1 0.370661 -0.25 1 5.55112e-17 -0.3125 1 -0.370661 -0.375 1 -0.684892 -0.4375 1 -0.894854 -0.5 1 -0.968583 -0.5625 1 -0.894854 -0.625 1 -0.684892 -0.6875 1 -0.370661 -0.75 1 -1.66533e-16 -0.8125 1 0.370661 -0.875 1 0.684892 -0.9375 1 0.894854 -1 1 0.968583 - - -0 0 0.960294 -0.0625 0 0.887196 -0.125 0 0.67903 -0.1875 0 0.367488 -0.25 0 5.55112e-17 -0.3125 0 -0.367488 -0.375 0 -0.67903 -0.4375 0 -0.887196 -0.5 0 -0.960294 -0.5625 0 -0.887196 -0.625 0 -0.67903 -0.6875 0 -0.367488 -0.75 0 -1.66533e-16 -0.8125 0 0.367488 -0.875 0 0.67903 -0.9375 0 0.887196 -1 0 0.960294 - -0 0.0625 0.887196 -0.0625 0.0625 0.819662 -0.125 0.0625 0.627342 -0.1875 0.0625 0.339515 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.339515 -0.375 0.0625 -0.627342 -0.4375 0.0625 -0.819662 -0.5 0.0625 -0.887196 -0.5625 0.0625 -0.819662 -0.625 0.0625 -0.627342 -0.6875 0.0625 -0.339515 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.339515 -0.875 0.0625 0.627342 -0.9375 0.0625 0.819662 -1 0.0625 0.887196 - -0 0.125 0.67903 -0.0625 0.125 0.627342 -0.125 0.125 0.480147 -0.1875 0.125 0.259854 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.259854 -0.375 0.125 -0.480147 -0.4375 0.125 -0.627342 -0.5 0.125 -0.67903 -0.5625 0.125 -0.627342 -0.625 0.125 -0.480147 -0.6875 0.125 -0.259854 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.259854 -0.875 0.125 0.480147 -0.9375 0.125 0.627342 -1 0.125 0.67903 - -0 0.1875 0.367488 -0.0625 0.1875 0.339515 -0.125 0.1875 0.259854 -0.1875 0.1875 0.140632 -0.25 0.1875 2.08167e-17 -0.3125 0.1875 -0.140632 -0.375 0.1875 -0.259854 -0.4375 0.1875 -0.339515 -0.5 0.1875 -0.367488 -0.5625 0.1875 -0.339515 -0.625 0.1875 -0.259854 -0.6875 0.1875 -0.140632 -0.75 0.1875 -6.245e-17 -0.8125 0.1875 0.140632 -0.875 0.1875 0.259854 -0.9375 0.1875 0.339515 -1 0.1875 0.367488 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 0 -0.1875 0.25 5.55112e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 -5.55112e-17 -0.375 0.25 0 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -1.11022e-16 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 0 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.367488 -0.0625 0.3125 -0.339515 -0.125 0.3125 -0.259854 -0.1875 0.3125 -0.140632 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.140632 -0.375 0.3125 0.259854 -0.4375 0.3125 0.339515 -0.5 0.3125 0.367488 -0.5625 0.3125 0.339515 -0.625 0.3125 0.259854 -0.6875 0.3125 0.140632 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.140632 -0.875 0.3125 -0.259854 -0.9375 0.3125 -0.339515 -1 0.3125 -0.367488 - -0 0.375 -0.67903 -0.0625 0.375 -0.627342 -0.125 0.375 -0.480147 -0.1875 0.375 -0.259854 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.259854 -0.375 0.375 0.480147 -0.4375 0.375 0.627342 -0.5 0.375 0.67903 -0.5625 0.375 0.627342 -0.625 0.375 0.480147 -0.6875 0.375 0.259854 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.259854 -0.875 0.375 -0.480147 -0.9375 0.375 -0.627342 -1 0.375 -0.67903 - -0 0.4375 -0.887196 -0.0625 0.4375 -0.819662 -0.125 0.4375 -0.627342 -0.1875 0.4375 -0.339515 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.339515 -0.375 0.4375 0.627342 -0.4375 0.4375 0.819662 -0.5 0.4375 0.887196 -0.5625 0.4375 0.819662 -0.625 0.4375 0.627342 -0.6875 0.4375 0.339515 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.339515 -0.875 0.4375 -0.627342 -0.9375 0.4375 -0.819662 -1 0.4375 -0.887196 - -0 0.5 -0.960294 -0.0625 0.5 -0.887196 -0.125 0.5 -0.67903 -0.1875 0.5 -0.367488 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.367488 -0.375 0.5 0.67903 -0.4375 0.5 0.887196 -0.5 0.5 0.960294 -0.5625 0.5 0.887196 -0.625 0.5 0.67903 -0.6875 0.5 0.367488 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.367488 -0.875 0.5 -0.67903 -0.9375 0.5 -0.887196 -1 0.5 -0.960294 - -0 0.5625 -0.887196 -0.0625 0.5625 -0.819662 -0.125 0.5625 -0.627342 -0.1875 0.5625 -0.339515 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.339515 -0.375 0.5625 0.627342 -0.4375 0.5625 0.819662 -0.5 0.5625 0.887196 -0.5625 0.5625 0.819662 -0.625 0.5625 0.627342 -0.6875 0.5625 0.339515 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.339515 -0.875 0.5625 -0.627342 -0.9375 0.5625 -0.819662 -1 0.5625 -0.887196 - -0 0.625 -0.67903 -0.0625 0.625 -0.627342 -0.125 0.625 -0.480147 -0.1875 0.625 -0.259854 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.259854 -0.375 0.625 0.480147 -0.4375 0.625 0.627342 -0.5 0.625 0.67903 -0.5625 0.625 0.627342 -0.625 0.625 0.480147 -0.6875 0.625 0.259854 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.259854 -0.875 0.625 -0.480147 -0.9375 0.625 -0.627342 -1 0.625 -0.67903 - -0 0.6875 -0.367488 -0.0625 0.6875 -0.339515 -0.125 0.6875 -0.259854 -0.1875 0.6875 -0.140632 -0.25 0.6875 -3.29597e-17 -0.3125 0.6875 0.140632 -0.375 0.6875 0.259854 -0.4375 0.6875 0.339515 -0.5 0.6875 0.367488 -0.5625 0.6875 0.339515 -0.625 0.6875 0.259854 -0.6875 0.6875 0.140632 -0.75 0.6875 5.0307e-17 -0.8125 0.6875 -0.140632 -0.875 0.6875 -0.259854 -0.9375 0.6875 -0.339515 -1 0.6875 -0.367488 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -1.66533e-16 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 2.77556e-17 -0.375 0.75 1.66533e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -8.32667e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.367488 -0.0625 0.8125 0.339515 -0.125 0.8125 0.259854 -0.1875 0.8125 0.140632 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.140632 -0.375 0.8125 -0.259854 -0.4375 0.8125 -0.339515 -0.5 0.8125 -0.367488 -0.5625 0.8125 -0.339515 -0.625 0.8125 -0.259854 -0.6875 0.8125 -0.140632 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.140632 -0.875 0.8125 0.259854 -0.9375 0.8125 0.339515 -1 0.8125 0.367488 - -0 0.875 0.67903 -0.0625 0.875 0.627342 -0.125 0.875 0.480147 -0.1875 0.875 0.259854 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.259854 -0.375 0.875 -0.480147 -0.4375 0.875 -0.627342 -0.5 0.875 -0.67903 -0.5625 0.875 -0.627342 -0.625 0.875 -0.480147 -0.6875 0.875 -0.259854 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.259854 -0.875 0.875 0.480147 -0.9375 0.875 0.627342 -1 0.875 0.67903 - -0 0.9375 0.887196 -0.0625 0.9375 0.819662 -0.125 0.9375 0.627342 -0.1875 0.9375 0.339515 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.339515 -0.375 0.9375 -0.627342 -0.4375 0.9375 -0.819662 -0.5 0.9375 -0.887196 -0.5625 0.9375 -0.819662 -0.625 0.9375 -0.627342 -0.6875 0.9375 -0.339515 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.339515 -0.875 0.9375 0.627342 -0.9375 0.9375 0.819662 -1 0.9375 0.887196 - -0 1 0.960294 -0.0625 1 0.887196 -0.125 1 0.67903 -0.1875 1 0.367488 -0.25 1 5.55112e-17 -0.3125 1 -0.367488 -0.375 1 -0.67903 -0.4375 1 -0.887196 -0.5 1 -0.960294 -0.5625 1 -0.887196 -0.625 1 -0.67903 -0.6875 1 -0.367488 -0.75 1 -1.66533e-16 -0.8125 1 0.367488 -0.875 1 0.67903 -0.9375 1 0.887196 -1 1 0.960294 - - -0 0 0.951057 -0.0625 0 0.878662 -0.125 0 0.672499 -0.1875 0 0.363954 -0.25 0 0 -0.3125 0 -0.363954 -0.375 0 -0.672499 -0.4375 0 -0.878662 -0.5 0 -0.951057 -0.5625 0 -0.878662 -0.625 0 -0.672499 -0.6875 0 -0.363954 -0.75 0 -2.22045e-16 -0.8125 0 0.363954 -0.875 0 0.672499 -0.9375 0 0.878662 -1 0 0.951057 - -0 0.0625 0.878662 -0.0625 0.0625 0.811778 -0.125 0.0625 0.621308 -0.1875 0.0625 0.336249 -0.25 0.0625 2.08167e-17 -0.3125 0.0625 -0.336249 -0.375 0.0625 -0.621308 -0.4375 0.0625 -0.811778 -0.5 0.0625 -0.878662 -0.5625 0.0625 -0.811778 -0.625 0.0625 -0.621308 -0.6875 0.0625 -0.336249 -0.75 0.0625 -2.01228e-16 -0.8125 0.0625 0.336249 -0.875 0.0625 0.621308 -0.9375 0.0625 0.811778 -1 0.0625 0.878662 - -0 0.125 0.672499 -0.0625 0.125 0.621308 -0.125 0.125 0.475528 -0.1875 0.125 0.257354 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.257354 -0.375 0.125 -0.475528 -0.4375 0.125 -0.621308 -0.5 0.125 -0.672499 -0.5625 0.125 -0.621308 -0.625 0.125 -0.475528 -0.6875 0.125 -0.257354 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.257354 -0.875 0.125 0.475528 -0.9375 0.125 0.621308 -1 0.125 0.672499 - -0 0.1875 0.363954 -0.0625 0.1875 0.336249 -0.125 0.1875 0.257354 -0.1875 0.1875 0.139279 -0.25 0.1875 2.08167e-17 -0.3125 0.1875 -0.139279 -0.375 0.1875 -0.257354 -0.4375 0.1875 -0.336249 -0.5 0.1875 -0.363954 -0.5625 0.1875 -0.336249 -0.625 0.1875 -0.257354 -0.6875 0.1875 -0.139279 -0.75 0.1875 -6.245e-17 -0.8125 0.1875 0.139279 -0.875 0.1875 0.257354 -0.9375 0.1875 0.336249 -1 0.1875 0.363954 - -0 0.25 0 -0.0625 0.25 1.11022e-16 -0.125 0.25 1.11022e-16 -0.1875 0.25 5.55112e-17 -0.25 0.25 6.16298e-33 -0.3125 0.25 -5.55112e-17 -0.375 0.25 -1.11022e-16 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -1.11022e-16 -0.5625 0.25 0 -0.625 0.25 -1.11022e-16 -0.6875 0.25 -2.77556e-17 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 5.55112e-17 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 -0.363954 -0.0625 0.3125 -0.336249 -0.125 0.3125 -0.257354 -0.1875 0.3125 -0.139279 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.139279 -0.375 0.3125 0.257354 -0.4375 0.3125 0.336249 -0.5 0.3125 0.363954 -0.5625 0.3125 0.336249 -0.625 0.3125 0.257354 -0.6875 0.3125 0.139279 -0.75 0.3125 6.93889e-17 -0.8125 0.3125 -0.139279 -0.875 0.3125 -0.257354 -0.9375 0.3125 -0.336249 -1 0.3125 -0.363954 - -0 0.375 -0.672499 -0.0625 0.375 -0.621308 -0.125 0.375 -0.475528 -0.1875 0.375 -0.257354 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.257354 -0.375 0.375 0.475528 -0.4375 0.375 0.621308 -0.5 0.375 0.672499 -0.5625 0.375 0.621308 -0.625 0.375 0.475528 -0.6875 0.375 0.257354 -0.75 0.375 1.38778e-16 -0.8125 0.375 -0.257354 -0.875 0.375 -0.475528 -0.9375 0.375 -0.621308 -1 0.375 -0.672499 - -0 0.4375 -0.878662 -0.0625 0.4375 -0.811778 -0.125 0.4375 -0.621308 -0.1875 0.4375 -0.336249 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.336249 -0.375 0.4375 0.621308 -0.4375 0.4375 0.811778 -0.5 0.4375 0.878662 -0.5625 0.4375 0.811778 -0.625 0.4375 0.621308 -0.6875 0.4375 0.336249 -0.75 0.4375 2.08167e-16 -0.8125 0.4375 -0.336249 -0.875 0.4375 -0.621308 -0.9375 0.4375 -0.811778 -1 0.4375 -0.878662 - -0 0.5 -0.951057 -0.0625 0.5 -0.878662 -0.125 0.5 -0.672499 -0.1875 0.5 -0.363954 -0.25 0.5 0 -0.3125 0.5 0.363954 -0.375 0.5 0.672499 -0.4375 0.5 0.878662 -0.5 0.5 0.951057 -0.5625 0.5 0.878662 -0.625 0.5 0.672499 -0.6875 0.5 0.363954 -0.75 0.5 2.22045e-16 -0.8125 0.5 -0.363954 -0.875 0.5 -0.672499 -0.9375 0.5 -0.878662 -1 0.5 -0.951057 - -0 0.5625 -0.878662 -0.0625 0.5625 -0.811778 -0.125 0.5625 -0.621308 -0.1875 0.5625 -0.336249 -0.25 0.5625 -6.93889e-18 -0.3125 0.5625 0.336249 -0.375 0.5625 0.621308 -0.4375 0.5625 0.811778 -0.5 0.5625 0.878662 -0.5625 0.5625 0.811778 -0.625 0.5625 0.621308 -0.6875 0.5625 0.336249 -0.75 0.5625 2.15106e-16 -0.8125 0.5625 -0.336249 -0.875 0.5625 -0.621308 -0.9375 0.5625 -0.811778 -1 0.5625 -0.878662 - -0 0.625 -0.672499 -0.0625 0.625 -0.621308 -0.125 0.625 -0.475528 -0.1875 0.625 -0.257354 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.257354 -0.375 0.625 0.475528 -0.4375 0.625 0.621308 -0.5 0.625 0.672499 -0.5625 0.625 0.621308 -0.625 0.625 0.475528 -0.6875 0.625 0.257354 -0.75 0.625 1.52656e-16 -0.8125 0.625 -0.257354 -0.875 0.625 -0.475528 -0.9375 0.625 -0.621308 -1 0.625 -0.672499 - -0 0.6875 -0.363954 -0.0625 0.6875 -0.336249 -0.125 0.6875 -0.257354 -0.1875 0.6875 -0.139279 -0.25 0.6875 -5.20417e-18 -0.3125 0.6875 0.139279 -0.375 0.6875 0.257354 -0.4375 0.6875 0.336249 -0.5 0.6875 0.363954 -0.5625 0.6875 0.336249 -0.625 0.6875 0.257354 -0.6875 0.6875 0.139279 -0.75 0.6875 7.80626e-17 -0.8125 0.6875 -0.139279 -0.875 0.6875 -0.257354 -0.9375 0.6875 -0.336249 -1 0.6875 -0.363954 - -0 0.75 -2.22045e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 2.77556e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 5.55112e-17 -0.75 0.75 4.93038e-32 -0.8125 0.75 -8.32667e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -2.22045e-16 -1 0.75 -2.22045e-16 - -0 0.8125 0.363954 -0.0625 0.8125 0.336249 -0.125 0.8125 0.257354 -0.1875 0.8125 0.139279 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.139279 -0.375 0.8125 -0.257354 -0.4375 0.8125 -0.336249 -0.5 0.8125 -0.363954 -0.5625 0.8125 -0.336249 -0.625 0.8125 -0.257354 -0.6875 0.8125 -0.139279 -0.75 0.8125 -6.93889e-17 -0.8125 0.8125 0.139279 -0.875 0.8125 0.257354 -0.9375 0.8125 0.336249 -1 0.8125 0.363954 - -0 0.875 0.672499 -0.0625 0.875 0.621308 -0.125 0.875 0.475528 -0.1875 0.875 0.257354 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.257354 -0.375 0.875 -0.475528 -0.4375 0.875 -0.621308 -0.5 0.875 -0.672499 -0.5625 0.875 -0.621308 -0.625 0.875 -0.475528 -0.6875 0.875 -0.257354 -0.75 0.875 -1.38778e-16 -0.8125 0.875 0.257354 -0.875 0.875 0.475528 -0.9375 0.875 0.621308 -1 0.875 0.672499 - -0 0.9375 0.878662 -0.0625 0.9375 0.811778 -0.125 0.9375 0.621308 -0.1875 0.9375 0.336249 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.336249 -0.375 0.9375 -0.621308 -0.4375 0.9375 -0.811778 -0.5 0.9375 -0.878662 -0.5625 0.9375 -0.811778 -0.625 0.9375 -0.621308 -0.6875 0.9375 -0.336249 -0.75 0.9375 -2.08167e-16 -0.8125 0.9375 0.336249 -0.875 0.9375 0.621308 -0.9375 0.9375 0.811778 -1 0.9375 0.878662 - -0 1 0.951057 -0.0625 1 0.878662 -0.125 1 0.672499 -0.1875 1 0.363954 -0.25 1 0 -0.3125 1 -0.363954 -0.375 1 -0.672499 -0.4375 1 -0.878662 -0.5 1 -0.951057 -0.5625 1 -0.878662 -0.625 1 -0.672499 -0.6875 1 -0.363954 -0.75 1 -2.22045e-16 -0.8125 1 0.363954 -0.875 1 0.672499 -0.9375 1 0.878662 -1 1 0.951057 - - -0 0 0.940881 -0.0625 0 0.86926 -0.125 0 0.665303 -0.1875 0 0.360059 -0.25 0 0 -0.3125 0 -0.360059 -0.375 0 -0.665303 -0.4375 0 -0.86926 -0.5 0 -0.940881 -0.5625 0 -0.86926 -0.625 0 -0.665303 -0.6875 0 -0.360059 -0.75 0 -2.22045e-16 -0.8125 0 0.360059 -0.875 0 0.665303 -0.9375 0 0.86926 -1 0 0.940881 - -0 0.0625 0.86926 -0.0625 0.0625 0.803092 -0.125 0.0625 0.61466 -0.1875 0.0625 0.332652 -0.25 0.0625 2.08167e-17 -0.3125 0.0625 -0.332652 -0.375 0.0625 -0.61466 -0.4375 0.0625 -0.803092 -0.5 0.0625 -0.86926 -0.5625 0.0625 -0.803092 -0.625 0.0625 -0.61466 -0.6875 0.0625 -0.332652 -0.75 0.0625 -2.01228e-16 -0.8125 0.0625 0.332652 -0.875 0.0625 0.61466 -0.9375 0.0625 0.803092 -1 0.0625 0.86926 - -0 0.125 0.665303 -0.0625 0.125 0.61466 -0.125 0.125 0.47044 -0.1875 0.125 0.254601 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.254601 -0.375 0.125 -0.47044 -0.4375 0.125 -0.61466 -0.5 0.125 -0.665303 -0.5625 0.125 -0.61466 -0.625 0.125 -0.47044 -0.6875 0.125 -0.254601 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.254601 -0.875 0.125 0.47044 -0.9375 0.125 0.61466 -1 0.125 0.665303 - -0 0.1875 0.360059 -0.0625 0.1875 0.332652 -0.125 0.1875 0.254601 -0.1875 0.1875 0.137789 -0.25 0.1875 2.08167e-17 -0.3125 0.1875 -0.137789 -0.375 0.1875 -0.254601 -0.4375 0.1875 -0.332652 -0.5 0.1875 -0.360059 -0.5625 0.1875 -0.332652 -0.625 0.1875 -0.254601 -0.6875 0.1875 -0.137789 -0.75 0.1875 -6.245e-17 -0.8125 0.1875 0.137789 -0.875 0.1875 0.254601 -0.9375 0.1875 0.332652 -1 0.1875 0.360059 - -0 0.25 0 -0.0625 0.25 0 -0.125 0.25 5.55112e-17 -0.1875 0.25 0 -0.25 0.25 6.16298e-33 -0.3125 0.25 -5.55112e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -1.11022e-16 -0.5625 0.25 -5.55112e-17 -0.625 0.25 0 -0.6875 0.25 -5.55112e-17 -0.75 0.25 0 -0.8125 0.25 5.55112e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 5.55112e-17 -1 0.25 0 - -0 0.3125 -0.360059 -0.0625 0.3125 -0.332652 -0.125 0.3125 -0.254601 -0.1875 0.3125 -0.137789 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.137789 -0.375 0.3125 0.254601 -0.4375 0.3125 0.332652 -0.5 0.3125 0.360059 -0.5625 0.3125 0.332652 -0.625 0.3125 0.254601 -0.6875 0.3125 0.137789 -0.75 0.3125 6.93889e-17 -0.8125 0.3125 -0.137789 -0.875 0.3125 -0.254601 -0.9375 0.3125 -0.332652 -1 0.3125 -0.360059 - -0 0.375 -0.665303 -0.0625 0.375 -0.61466 -0.125 0.375 -0.47044 -0.1875 0.375 -0.254601 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.254601 -0.375 0.375 0.47044 -0.4375 0.375 0.61466 -0.5 0.375 0.665303 -0.5625 0.375 0.61466 -0.625 0.375 0.47044 -0.6875 0.375 0.254601 -0.75 0.375 1.38778e-16 -0.8125 0.375 -0.254601 -0.875 0.375 -0.47044 -0.9375 0.375 -0.61466 -1 0.375 -0.665303 - -0 0.4375 -0.86926 -0.0625 0.4375 -0.803092 -0.125 0.4375 -0.61466 -0.1875 0.4375 -0.332652 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.332652 -0.375 0.4375 0.61466 -0.4375 0.4375 0.803092 -0.5 0.4375 0.86926 -0.5625 0.4375 0.803092 -0.625 0.4375 0.61466 -0.6875 0.4375 0.332652 -0.75 0.4375 2.08167e-16 -0.8125 0.4375 -0.332652 -0.875 0.4375 -0.61466 -0.9375 0.4375 -0.803092 -1 0.4375 -0.86926 - -0 0.5 -0.940881 -0.0625 0.5 -0.86926 -0.125 0.5 -0.665303 -0.1875 0.5 -0.360059 -0.25 0.5 0 -0.3125 0.5 0.360059 -0.375 0.5 0.665303 -0.4375 0.5 0.86926 -0.5 0.5 0.940881 -0.5625 0.5 0.86926 -0.625 0.5 0.665303 -0.6875 0.5 0.360059 -0.75 0.5 2.22045e-16 -0.8125 0.5 -0.360059 -0.875 0.5 -0.665303 -0.9375 0.5 -0.86926 -1 0.5 -0.940881 - -0 0.5625 -0.86926 -0.0625 0.5625 -0.803092 -0.125 0.5625 -0.61466 -0.1875 0.5625 -0.332652 -0.25 0.5625 -6.93889e-18 -0.3125 0.5625 0.332652 -0.375 0.5625 0.61466 -0.4375 0.5625 0.803092 -0.5 0.5625 0.86926 -0.5625 0.5625 0.803092 -0.625 0.5625 0.61466 -0.6875 0.5625 0.332652 -0.75 0.5625 2.15106e-16 -0.8125 0.5625 -0.332652 -0.875 0.5625 -0.61466 -0.9375 0.5625 -0.803092 -1 0.5625 -0.86926 - -0 0.625 -0.665303 -0.0625 0.625 -0.61466 -0.125 0.625 -0.47044 -0.1875 0.625 -0.254601 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.254601 -0.375 0.625 0.47044 -0.4375 0.625 0.61466 -0.5 0.625 0.665303 -0.5625 0.625 0.61466 -0.625 0.625 0.47044 -0.6875 0.625 0.254601 -0.75 0.625 1.52656e-16 -0.8125 0.625 -0.254601 -0.875 0.625 -0.47044 -0.9375 0.625 -0.61466 -1 0.625 -0.665303 - -0 0.6875 -0.360059 -0.0625 0.6875 -0.332652 -0.125 0.6875 -0.254601 -0.1875 0.6875 -0.137789 -0.25 0.6875 -5.20417e-18 -0.3125 0.6875 0.137789 -0.375 0.6875 0.254601 -0.4375 0.6875 0.332652 -0.5 0.6875 0.360059 -0.5625 0.6875 0.332652 -0.625 0.6875 0.254601 -0.6875 0.6875 0.137789 -0.75 0.6875 7.80626e-17 -0.8125 0.6875 -0.137789 -0.875 0.6875 -0.254601 -0.9375 0.6875 -0.332652 -1 0.6875 -0.360059 - -0 0.75 -2.22045e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 2.77556e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 2.77556e-17 -0.75 0.75 4.93038e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.66533e-16 -1 0.75 -2.22045e-16 - -0 0.8125 0.360059 -0.0625 0.8125 0.332652 -0.125 0.8125 0.254601 -0.1875 0.8125 0.137789 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.137789 -0.375 0.8125 -0.254601 -0.4375 0.8125 -0.332652 -0.5 0.8125 -0.360059 -0.5625 0.8125 -0.332652 -0.625 0.8125 -0.254601 -0.6875 0.8125 -0.137789 -0.75 0.8125 -6.93889e-17 -0.8125 0.8125 0.137789 -0.875 0.8125 0.254601 -0.9375 0.8125 0.332652 -1 0.8125 0.360059 - -0 0.875 0.665303 -0.0625 0.875 0.61466 -0.125 0.875 0.47044 -0.1875 0.875 0.254601 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.254601 -0.375 0.875 -0.47044 -0.4375 0.875 -0.61466 -0.5 0.875 -0.665303 -0.5625 0.875 -0.61466 -0.625 0.875 -0.47044 -0.6875 0.875 -0.254601 -0.75 0.875 -1.38778e-16 -0.8125 0.875 0.254601 -0.875 0.875 0.47044 -0.9375 0.875 0.61466 -1 0.875 0.665303 - -0 0.9375 0.86926 -0.0625 0.9375 0.803092 -0.125 0.9375 0.61466 -0.1875 0.9375 0.332652 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.332652 -0.375 0.9375 -0.61466 -0.4375 0.9375 -0.803092 -0.5 0.9375 -0.86926 -0.5625 0.9375 -0.803092 -0.625 0.9375 -0.61466 -0.6875 0.9375 -0.332652 -0.75 0.9375 -2.08167e-16 -0.8125 0.9375 0.332652 -0.875 0.9375 0.61466 -0.9375 0.9375 0.803092 -1 0.9375 0.86926 - -0 1 0.940881 -0.0625 1 0.86926 -0.125 1 0.665303 -0.1875 1 0.360059 -0.25 1 0 -0.3125 1 -0.360059 -0.375 1 -0.665303 -0.4375 1 -0.86926 -0.5 1 -0.940881 -0.5625 1 -0.86926 -0.625 1 -0.665303 -0.6875 1 -0.360059 -0.75 1 -2.22045e-16 -0.8125 1 0.360059 -0.875 1 0.665303 -0.9375 1 0.86926 -1 1 0.940881 - - -0 0 0.929776 -0.0625 0 0.859001 -0.125 0 0.657451 -0.1875 0 0.35581 -0.25 0 1.11022e-16 -0.3125 0 -0.35581 -0.375 0 -0.657451 -0.4375 0 -0.859001 -0.5 0 -0.929776 -0.5625 0 -0.859001 -0.625 0 -0.657451 -0.6875 0 -0.35581 -0.75 0 -1.11022e-16 -0.8125 0 0.35581 -0.875 0 0.657451 -0.9375 0 0.859001 -1 0 0.929776 - -0 0.0625 0.859001 -0.0625 0.0625 0.793614 -0.125 0.0625 0.607406 -0.1875 0.0625 0.328726 -0.25 0.0625 1.04083e-16 -0.3125 0.0625 -0.328726 -0.375 0.0625 -0.607406 -0.4375 0.0625 -0.793614 -0.5 0.0625 -0.859001 -0.5625 0.0625 -0.793614 -0.625 0.0625 -0.607406 -0.6875 0.0625 -0.328726 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.328726 -0.875 0.0625 0.607406 -0.9375 0.0625 0.793614 -1 0.0625 0.859001 - -0 0.125 0.657451 -0.0625 0.125 0.607406 -0.125 0.125 0.464888 -0.1875 0.125 0.251596 -0.25 0.125 9.71445e-17 -0.3125 0.125 -0.251596 -0.375 0.125 -0.464888 -0.4375 0.125 -0.607406 -0.5 0.125 -0.657451 -0.5625 0.125 -0.607406 -0.625 0.125 -0.464888 -0.6875 0.125 -0.251596 -0.75 0.125 -6.93889e-17 -0.8125 0.125 0.251596 -0.875 0.125 0.464888 -0.9375 0.125 0.607406 -1 0.125 0.657451 - -0 0.1875 0.35581 -0.0625 0.1875 0.328726 -0.125 0.1875 0.251596 -0.1875 0.1875 0.136163 -0.25 0.1875 4.85723e-17 -0.3125 0.1875 -0.136163 -0.375 0.1875 -0.251596 -0.4375 0.1875 -0.328726 -0.5 0.1875 -0.35581 -0.5625 0.1875 -0.328726 -0.625 0.1875 -0.251596 -0.6875 0.1875 -0.136163 -0.75 0.1875 -3.46945e-17 -0.8125 0.1875 0.136163 -0.875 0.1875 0.251596 -0.9375 0.1875 0.328726 -1 0.1875 0.35581 - -0 0.25 1.11022e-16 -0.0625 0.25 1.11022e-16 -0.125 0.25 5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -1.11022e-16 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 0 -1 0.25 1.11022e-16 - -0 0.3125 -0.35581 -0.0625 0.3125 -0.328726 -0.125 0.3125 -0.251596 -0.1875 0.3125 -0.136163 -0.25 0.3125 -4.16334e-17 -0.3125 0.3125 0.136163 -0.375 0.3125 0.251596 -0.4375 0.3125 0.328726 -0.5 0.3125 0.35581 -0.5625 0.3125 0.328726 -0.625 0.3125 0.251596 -0.6875 0.3125 0.136163 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.136163 -0.875 0.3125 -0.251596 -0.9375 0.3125 -0.328726 -1 0.3125 -0.35581 - -0 0.375 -0.657451 -0.0625 0.375 -0.607406 -0.125 0.375 -0.464888 -0.1875 0.375 -0.251596 -0.25 0.375 -8.32667e-17 -0.3125 0.375 0.251596 -0.375 0.375 0.464888 -0.4375 0.375 0.607406 -0.5 0.375 0.657451 -0.5625 0.375 0.607406 -0.625 0.375 0.464888 -0.6875 0.375 0.251596 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.251596 -0.875 0.375 -0.464888 -0.9375 0.375 -0.607406 -1 0.375 -0.657451 - -0 0.4375 -0.859001 -0.0625 0.4375 -0.793614 -0.125 0.4375 -0.607406 -0.1875 0.4375 -0.328726 -0.25 0.4375 -9.71445e-17 -0.3125 0.4375 0.328726 -0.375 0.4375 0.607406 -0.4375 0.4375 0.793614 -0.5 0.4375 0.859001 -0.5625 0.4375 0.793614 -0.625 0.4375 0.607406 -0.6875 0.4375 0.328726 -0.75 0.4375 1.249e-16 -0.8125 0.4375 -0.328726 -0.875 0.4375 -0.607406 -0.9375 0.4375 -0.793614 -1 0.4375 -0.859001 - -0 0.5 -0.929776 -0.0625 0.5 -0.859001 -0.125 0.5 -0.657451 -0.1875 0.5 -0.35581 -0.25 0.5 -1.11022e-16 -0.3125 0.5 0.35581 -0.375 0.5 0.657451 -0.4375 0.5 0.859001 -0.5 0.5 0.929776 -0.5625 0.5 0.859001 -0.625 0.5 0.657451 -0.6875 0.5 0.35581 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.35581 -0.875 0.5 -0.657451 -0.9375 0.5 -0.859001 -1 0.5 -0.929776 - -0 0.5625 -0.859001 -0.0625 0.5625 -0.793614 -0.125 0.5625 -0.607406 -0.1875 0.5625 -0.328726 -0.25 0.5625 -9.02056e-17 -0.3125 0.5625 0.328726 -0.375 0.5625 0.607406 -0.4375 0.5625 0.793614 -0.5 0.5625 0.859001 -0.5625 0.5625 0.793614 -0.625 0.5625 0.607406 -0.6875 0.5625 0.328726 -0.75 0.5625 1.31839e-16 -0.8125 0.5625 -0.328726 -0.875 0.5625 -0.607406 -0.9375 0.5625 -0.793614 -1 0.5625 -0.859001 - -0 0.625 -0.657451 -0.0625 0.625 -0.607406 -0.125 0.625 -0.464888 -0.1875 0.625 -0.251596 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.251596 -0.375 0.625 0.464888 -0.4375 0.625 0.607406 -0.5 0.625 0.657451 -0.5625 0.625 0.607406 -0.625 0.625 0.464888 -0.6875 0.625 0.251596 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.251596 -0.875 0.625 -0.464888 -0.9375 0.625 -0.607406 -1 0.625 -0.657451 - -0 0.6875 -0.35581 -0.0625 0.6875 -0.328726 -0.125 0.6875 -0.251596 -0.1875 0.6875 -0.136163 -0.25 0.6875 -3.29597e-17 -0.3125 0.6875 0.136163 -0.375 0.6875 0.251596 -0.4375 0.6875 0.328726 -0.5 0.6875 0.35581 -0.5625 0.6875 0.328726 -0.625 0.6875 0.251596 -0.6875 0.6875 0.136163 -0.75 0.6875 5.0307e-17 -0.8125 0.6875 -0.136163 -0.875 0.6875 -0.251596 -0.9375 0.6875 -0.328726 -1 0.6875 -0.35581 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -2.22045e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.35581 -0.0625 0.8125 0.328726 -0.125 0.8125 0.251596 -0.1875 0.8125 0.136163 -0.25 0.8125 4.16334e-17 -0.3125 0.8125 -0.136163 -0.375 0.8125 -0.251596 -0.4375 0.8125 -0.328726 -0.5 0.8125 -0.35581 -0.5625 0.8125 -0.328726 -0.625 0.8125 -0.251596 -0.6875 0.8125 -0.136163 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.136163 -0.875 0.8125 0.251596 -0.9375 0.8125 0.328726 -1 0.8125 0.35581 - -0 0.875 0.657451 -0.0625 0.875 0.607406 -0.125 0.875 0.464888 -0.1875 0.875 0.251596 -0.25 0.875 8.32667e-17 -0.3125 0.875 -0.251596 -0.375 0.875 -0.464888 -0.4375 0.875 -0.607406 -0.5 0.875 -0.657451 -0.5625 0.875 -0.607406 -0.625 0.875 -0.464888 -0.6875 0.875 -0.251596 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.251596 -0.875 0.875 0.464888 -0.9375 0.875 0.607406 -1 0.875 0.657451 - -0 0.9375 0.859001 -0.0625 0.9375 0.793614 -0.125 0.9375 0.607406 -0.1875 0.9375 0.328726 -0.25 0.9375 9.71445e-17 -0.3125 0.9375 -0.328726 -0.375 0.9375 -0.607406 -0.4375 0.9375 -0.793614 -0.5 0.9375 -0.859001 -0.5625 0.9375 -0.793614 -0.625 0.9375 -0.607406 -0.6875 0.9375 -0.328726 -0.75 0.9375 -1.249e-16 -0.8125 0.9375 0.328726 -0.875 0.9375 0.607406 -0.9375 0.9375 0.793614 -1 0.9375 0.859001 - -0 1 0.929776 -0.0625 1 0.859001 -0.125 1 0.657451 -0.1875 1 0.35581 -0.25 1 1.11022e-16 -0.3125 1 -0.35581 -0.375 1 -0.657451 -0.4375 1 -0.859001 -0.5 1 -0.929776 -0.5625 1 -0.859001 -0.625 1 -0.657451 -0.6875 1 -0.35581 -0.75 1 -1.11022e-16 -0.8125 1 0.35581 -0.875 1 0.657451 -0.9375 1 0.859001 -1 1 0.929776 - - -0 0 0.917755 -0.0625 0 0.847895 -0.125 0 0.648951 -0.1875 0 0.351209 -0.25 0 1.11022e-16 -0.3125 0 -0.351209 -0.375 0 -0.648951 -0.4375 0 -0.847895 -0.5 0 -0.917755 -0.5625 0 -0.847895 -0.625 0 -0.648951 -0.6875 0 -0.351209 -0.75 0 -1.11022e-16 -0.8125 0 0.351209 -0.875 0 0.648951 -0.9375 0 0.847895 -1 0 0.917755 - -0 0.0625 0.847895 -0.0625 0.0625 0.783353 -0.125 0.0625 0.599552 -0.1875 0.0625 0.324475 -0.25 0.0625 1.04083e-16 -0.3125 0.0625 -0.324475 -0.375 0.0625 -0.599552 -0.4375 0.0625 -0.783353 -0.5 0.0625 -0.847895 -0.5625 0.0625 -0.783353 -0.625 0.0625 -0.599552 -0.6875 0.0625 -0.324475 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.324475 -0.875 0.0625 0.599552 -0.9375 0.0625 0.783353 -1 0.0625 0.847895 - -0 0.125 0.648951 -0.0625 0.125 0.599552 -0.125 0.125 0.458877 -0.1875 0.125 0.248343 -0.25 0.125 9.71445e-17 -0.3125 0.125 -0.248343 -0.375 0.125 -0.458877 -0.4375 0.125 -0.599552 -0.5 0.125 -0.648951 -0.5625 0.125 -0.599552 -0.625 0.125 -0.458877 -0.6875 0.125 -0.248343 -0.75 0.125 -6.93889e-17 -0.8125 0.125 0.248343 -0.875 0.125 0.458877 -0.9375 0.125 0.599552 -1 0.125 0.648951 - -0 0.1875 0.351209 -0.0625 0.1875 0.324475 -0.125 0.1875 0.248343 -0.1875 0.1875 0.134402 -0.25 0.1875 4.85723e-17 -0.3125 0.1875 -0.134402 -0.375 0.1875 -0.248343 -0.4375 0.1875 -0.324475 -0.5 0.1875 -0.351209 -0.5625 0.1875 -0.324475 -0.625 0.1875 -0.248343 -0.6875 0.1875 -0.134402 -0.75 0.1875 -3.46945e-17 -0.8125 0.1875 0.134402 -0.875 0.1875 0.248343 -0.9375 0.1875 0.324475 -1 0.1875 0.351209 - -0 0.25 1.11022e-16 -0.0625 0.25 0 -0.125 0.25 5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -1.11022e-16 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -5.55112e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 0 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 1.11022e-16 - -0 0.3125 -0.351209 -0.0625 0.3125 -0.324475 -0.125 0.3125 -0.248343 -0.1875 0.3125 -0.134402 -0.25 0.3125 -4.16334e-17 -0.3125 0.3125 0.134402 -0.375 0.3125 0.248343 -0.4375 0.3125 0.324475 -0.5 0.3125 0.351209 -0.5625 0.3125 0.324475 -0.625 0.3125 0.248343 -0.6875 0.3125 0.134402 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.134402 -0.875 0.3125 -0.248343 -0.9375 0.3125 -0.324475 -1 0.3125 -0.351209 - -0 0.375 -0.648951 -0.0625 0.375 -0.599552 -0.125 0.375 -0.458877 -0.1875 0.375 -0.248343 -0.25 0.375 -8.32667e-17 -0.3125 0.375 0.248343 -0.375 0.375 0.458877 -0.4375 0.375 0.599552 -0.5 0.375 0.648951 -0.5625 0.375 0.599552 -0.625 0.375 0.458877 -0.6875 0.375 0.248343 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.248343 -0.875 0.375 -0.458877 -0.9375 0.375 -0.599552 -1 0.375 -0.648951 - -0 0.4375 -0.847895 -0.0625 0.4375 -0.783353 -0.125 0.4375 -0.599552 -0.1875 0.4375 -0.324475 -0.25 0.4375 -9.71445e-17 -0.3125 0.4375 0.324475 -0.375 0.4375 0.599552 -0.4375 0.4375 0.783353 -0.5 0.4375 0.847895 -0.5625 0.4375 0.783353 -0.625 0.4375 0.599552 -0.6875 0.4375 0.324475 -0.75 0.4375 1.249e-16 -0.8125 0.4375 -0.324475 -0.875 0.4375 -0.599552 -0.9375 0.4375 -0.783353 -1 0.4375 -0.847895 - -0 0.5 -0.917755 -0.0625 0.5 -0.847895 -0.125 0.5 -0.648951 -0.1875 0.5 -0.351209 -0.25 0.5 -1.11022e-16 -0.3125 0.5 0.351209 -0.375 0.5 0.648951 -0.4375 0.5 0.847895 -0.5 0.5 0.917755 -0.5625 0.5 0.847895 -0.625 0.5 0.648951 -0.6875 0.5 0.351209 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.351209 -0.875 0.5 -0.648951 -0.9375 0.5 -0.847895 -1 0.5 -0.917755 - -0 0.5625 -0.847895 -0.0625 0.5625 -0.783353 -0.125 0.5625 -0.599552 -0.1875 0.5625 -0.324475 -0.25 0.5625 -9.02056e-17 -0.3125 0.5625 0.324475 -0.375 0.5625 0.599552 -0.4375 0.5625 0.783353 -0.5 0.5625 0.847895 -0.5625 0.5625 0.783353 -0.625 0.5625 0.599552 -0.6875 0.5625 0.324475 -0.75 0.5625 1.31839e-16 -0.8125 0.5625 -0.324475 -0.875 0.5625 -0.599552 -0.9375 0.5625 -0.783353 -1 0.5625 -0.847895 - -0 0.625 -0.648951 -0.0625 0.625 -0.599552 -0.125 0.625 -0.458877 -0.1875 0.625 -0.248343 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.248343 -0.375 0.625 0.458877 -0.4375 0.625 0.599552 -0.5 0.625 0.648951 -0.5625 0.625 0.599552 -0.625 0.625 0.458877 -0.6875 0.625 0.248343 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.248343 -0.875 0.625 -0.458877 -0.9375 0.625 -0.599552 -1 0.625 -0.648951 - -0 0.6875 -0.351209 -0.0625 0.6875 -0.324475 -0.125 0.6875 -0.248343 -0.1875 0.6875 -0.134402 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.134402 -0.375 0.6875 0.248343 -0.4375 0.6875 0.324475 -0.5 0.6875 0.351209 -0.5625 0.6875 0.324475 -0.625 0.6875 0.248343 -0.6875 0.6875 0.134402 -0.75 0.6875 4.85723e-17 -0.8125 0.6875 -0.134402 -0.875 0.6875 -0.248343 -0.9375 0.6875 -0.324475 -1 0.6875 -0.351209 - -0 0.75 -1.11022e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 2.77556e-17 -0.75 0.75 3.69779e-32 -0.8125 0.75 -8.32667e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.351209 -0.0625 0.8125 0.324475 -0.125 0.8125 0.248343 -0.1875 0.8125 0.134402 -0.25 0.8125 4.16334e-17 -0.3125 0.8125 -0.134402 -0.375 0.8125 -0.248343 -0.4375 0.8125 -0.324475 -0.5 0.8125 -0.351209 -0.5625 0.8125 -0.324475 -0.625 0.8125 -0.248343 -0.6875 0.8125 -0.134402 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.134402 -0.875 0.8125 0.248343 -0.9375 0.8125 0.324475 -1 0.8125 0.351209 - -0 0.875 0.648951 -0.0625 0.875 0.599552 -0.125 0.875 0.458877 -0.1875 0.875 0.248343 -0.25 0.875 8.32667e-17 -0.3125 0.875 -0.248343 -0.375 0.875 -0.458877 -0.4375 0.875 -0.599552 -0.5 0.875 -0.648951 -0.5625 0.875 -0.599552 -0.625 0.875 -0.458877 -0.6875 0.875 -0.248343 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.248343 -0.875 0.875 0.458877 -0.9375 0.875 0.599552 -1 0.875 0.648951 - -0 0.9375 0.847895 -0.0625 0.9375 0.783353 -0.125 0.9375 0.599552 -0.1875 0.9375 0.324475 -0.25 0.9375 9.71445e-17 -0.3125 0.9375 -0.324475 -0.375 0.9375 -0.599552 -0.4375 0.9375 -0.783353 -0.5 0.9375 -0.847895 -0.5625 0.9375 -0.783353 -0.625 0.9375 -0.599552 -0.6875 0.9375 -0.324475 -0.75 0.9375 -1.249e-16 -0.8125 0.9375 0.324475 -0.875 0.9375 0.599552 -0.9375 0.9375 0.783353 -1 0.9375 0.847895 - -0 1 0.917755 -0.0625 1 0.847895 -0.125 1 0.648951 -0.1875 1 0.351209 -0.25 1 1.11022e-16 -0.3125 1 -0.351209 -0.375 1 -0.648951 -0.4375 1 -0.847895 -0.5 1 -0.917755 -0.5625 1 -0.847895 -0.625 1 -0.648951 -0.6875 1 -0.351209 -0.75 1 -1.11022e-16 -0.8125 1 0.351209 -0.875 1 0.648951 -0.9375 1 0.847895 -1 1 0.917755 - - -0 0 0.904827 -0.0625 0 0.835951 -0.125 0 0.639809 -0.1875 0 0.346262 -0.25 0 0 -0.3125 0 -0.346262 -0.375 0 -0.639809 -0.4375 0 -0.835951 -0.5 0 -0.904827 -0.5625 0 -0.835951 -0.625 0 -0.639809 -0.6875 0 -0.346262 -0.75 0 -2.22045e-16 -0.8125 0 0.346262 -0.875 0 0.639809 -0.9375 0 0.835951 -1 0 0.904827 - -0 0.0625 0.835951 -0.0625 0.0625 0.772318 -0.125 0.0625 0.591107 -0.1875 0.0625 0.319905 -0.25 0.0625 2.08167e-17 -0.3125 0.0625 -0.319905 -0.375 0.0625 -0.591107 -0.4375 0.0625 -0.772318 -0.5 0.0625 -0.835951 -0.5625 0.0625 -0.772318 -0.625 0.0625 -0.591107 -0.6875 0.0625 -0.319905 -0.75 0.0625 -2.01228e-16 -0.8125 0.0625 0.319905 -0.875 0.0625 0.591107 -0.9375 0.0625 0.772318 -1 0.0625 0.835951 - -0 0.125 0.639809 -0.0625 0.125 0.591107 -0.125 0.125 0.452414 -0.1875 0.125 0.244844 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.244844 -0.375 0.125 -0.452414 -0.4375 0.125 -0.591107 -0.5 0.125 -0.639809 -0.5625 0.125 -0.591107 -0.625 0.125 -0.452414 -0.6875 0.125 -0.244844 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.244844 -0.875 0.125 0.452414 -0.9375 0.125 0.591107 -1 0.125 0.639809 - -0 0.1875 0.346262 -0.0625 0.1875 0.319905 -0.125 0.1875 0.244844 -0.1875 0.1875 0.132509 -0.25 0.1875 2.08167e-17 -0.3125 0.1875 -0.132509 -0.375 0.1875 -0.244844 -0.4375 0.1875 -0.319905 -0.5 0.1875 -0.346262 -0.5625 0.1875 -0.319905 -0.625 0.1875 -0.244844 -0.6875 0.1875 -0.132509 -0.75 0.1875 -6.245e-17 -0.8125 0.1875 0.132509 -0.875 0.1875 0.244844 -0.9375 0.1875 0.319905 -1 0.1875 0.346262 - -0 0.25 0 -0.0625 0.25 1.11022e-16 -0.125 0.25 5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 0 -0.5625 0.25 0 -0.625 0.25 -1.11022e-16 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 -0.346262 -0.0625 0.3125 -0.319905 -0.125 0.3125 -0.244844 -0.1875 0.3125 -0.132509 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.132509 -0.375 0.3125 0.244844 -0.4375 0.3125 0.319905 -0.5 0.3125 0.346262 -0.5625 0.3125 0.319905 -0.625 0.3125 0.244844 -0.6875 0.3125 0.132509 -0.75 0.3125 6.93889e-17 -0.8125 0.3125 -0.132509 -0.875 0.3125 -0.244844 -0.9375 0.3125 -0.319905 -1 0.3125 -0.346262 - -0 0.375 -0.639809 -0.0625 0.375 -0.591107 -0.125 0.375 -0.452414 -0.1875 0.375 -0.244844 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.244844 -0.375 0.375 0.452414 -0.4375 0.375 0.591107 -0.5 0.375 0.639809 -0.5625 0.375 0.591107 -0.625 0.375 0.452414 -0.6875 0.375 0.244844 -0.75 0.375 1.38778e-16 -0.8125 0.375 -0.244844 -0.875 0.375 -0.452414 -0.9375 0.375 -0.591107 -1 0.375 -0.639809 - -0 0.4375 -0.835951 -0.0625 0.4375 -0.772318 -0.125 0.4375 -0.591107 -0.1875 0.4375 -0.319905 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.319905 -0.375 0.4375 0.591107 -0.4375 0.4375 0.772318 -0.5 0.4375 0.835951 -0.5625 0.4375 0.772318 -0.625 0.4375 0.591107 -0.6875 0.4375 0.319905 -0.75 0.4375 2.08167e-16 -0.8125 0.4375 -0.319905 -0.875 0.4375 -0.591107 -0.9375 0.4375 -0.772318 -1 0.4375 -0.835951 - -0 0.5 -0.904827 -0.0625 0.5 -0.835951 -0.125 0.5 -0.639809 -0.1875 0.5 -0.346262 -0.25 0.5 0 -0.3125 0.5 0.346262 -0.375 0.5 0.639809 -0.4375 0.5 0.835951 -0.5 0.5 0.904827 -0.5625 0.5 0.835951 -0.625 0.5 0.639809 -0.6875 0.5 0.346262 -0.75 0.5 2.22045e-16 -0.8125 0.5 -0.346262 -0.875 0.5 -0.639809 -0.9375 0.5 -0.835951 -1 0.5 -0.904827 - -0 0.5625 -0.835951 -0.0625 0.5625 -0.772318 -0.125 0.5625 -0.591107 -0.1875 0.5625 -0.319905 -0.25 0.5625 -6.93889e-18 -0.3125 0.5625 0.319905 -0.375 0.5625 0.591107 -0.4375 0.5625 0.772318 -0.5 0.5625 0.835951 -0.5625 0.5625 0.772318 -0.625 0.5625 0.591107 -0.6875 0.5625 0.319905 -0.75 0.5625 2.15106e-16 -0.8125 0.5625 -0.319905 -0.875 0.5625 -0.591107 -0.9375 0.5625 -0.772318 -1 0.5625 -0.835951 - -0 0.625 -0.639809 -0.0625 0.625 -0.591107 -0.125 0.625 -0.452414 -0.1875 0.625 -0.244844 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.244844 -0.375 0.625 0.452414 -0.4375 0.625 0.591107 -0.5 0.625 0.639809 -0.5625 0.625 0.591107 -0.625 0.625 0.452414 -0.6875 0.625 0.244844 -0.75 0.625 1.52656e-16 -0.8125 0.625 -0.244844 -0.875 0.625 -0.452414 -0.9375 0.625 -0.591107 -1 0.625 -0.639809 - -0 0.6875 -0.346262 -0.0625 0.6875 -0.319905 -0.125 0.6875 -0.244844 -0.1875 0.6875 -0.132509 -0.25 0.6875 -6.93889e-18 -0.3125 0.6875 0.132509 -0.375 0.6875 0.244844 -0.4375 0.6875 0.319905 -0.5 0.6875 0.346262 -0.5625 0.6875 0.319905 -0.625 0.6875 0.244844 -0.6875 0.6875 0.132509 -0.75 0.6875 7.63278e-17 -0.8125 0.6875 -0.132509 -0.875 0.6875 -0.244844 -0.9375 0.6875 -0.319905 -1 0.6875 -0.346262 - -0 0.75 -2.22045e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 2.22045e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 8.32667e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -2.22045e-16 -1 0.75 -2.22045e-16 - -0 0.8125 0.346262 -0.0625 0.8125 0.319905 -0.125 0.8125 0.244844 -0.1875 0.8125 0.132509 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.132509 -0.375 0.8125 -0.244844 -0.4375 0.8125 -0.319905 -0.5 0.8125 -0.346262 -0.5625 0.8125 -0.319905 -0.625 0.8125 -0.244844 -0.6875 0.8125 -0.132509 -0.75 0.8125 -6.93889e-17 -0.8125 0.8125 0.132509 -0.875 0.8125 0.244844 -0.9375 0.8125 0.319905 -1 0.8125 0.346262 - -0 0.875 0.639809 -0.0625 0.875 0.591107 -0.125 0.875 0.452414 -0.1875 0.875 0.244844 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.244844 -0.375 0.875 -0.452414 -0.4375 0.875 -0.591107 -0.5 0.875 -0.639809 -0.5625 0.875 -0.591107 -0.625 0.875 -0.452414 -0.6875 0.875 -0.244844 -0.75 0.875 -1.38778e-16 -0.8125 0.875 0.244844 -0.875 0.875 0.452414 -0.9375 0.875 0.591107 -1 0.875 0.639809 - -0 0.9375 0.835951 -0.0625 0.9375 0.772318 -0.125 0.9375 0.591107 -0.1875 0.9375 0.319905 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.319905 -0.375 0.9375 -0.591107 -0.4375 0.9375 -0.772318 -0.5 0.9375 -0.835951 -0.5625 0.9375 -0.772318 -0.625 0.9375 -0.591107 -0.6875 0.9375 -0.319905 -0.75 0.9375 -2.08167e-16 -0.8125 0.9375 0.319905 -0.875 0.9375 0.591107 -0.9375 0.9375 0.772318 -1 0.9375 0.835951 - -0 1 0.904827 -0.0625 1 0.835951 -0.125 1 0.639809 -0.1875 1 0.346262 -0.25 1 0 -0.3125 1 -0.346262 -0.375 1 -0.639809 -0.4375 1 -0.835951 -0.5 1 -0.904827 -0.5625 1 -0.835951 -0.625 1 -0.639809 -0.6875 1 -0.346262 -0.75 1 -2.22045e-16 -0.8125 1 0.346262 -0.875 1 0.639809 -0.9375 1 0.835951 -1 1 0.904827 - - -0 0 0.891007 -0.0625 0 0.823183 -0.125 0 0.630037 -0.1875 0 0.340973 -0.25 0 1.11022e-16 -0.3125 0 -0.340973 -0.375 0 -0.630037 -0.4375 0 -0.823183 -0.5 0 -0.891007 -0.5625 0 -0.823183 -0.625 0 -0.630037 -0.6875 0 -0.340973 -0.75 0 -1.11022e-16 -0.8125 0 0.340973 -0.875 0 0.630037 -0.9375 0 0.823183 -1 0 0.891007 - -0 0.0625 0.823183 -0.0625 0.0625 0.760522 -0.125 0.0625 0.582078 -0.1875 0.0625 0.315018 -0.25 0.0625 1.04083e-16 -0.3125 0.0625 -0.315018 -0.375 0.0625 -0.582078 -0.4375 0.0625 -0.760522 -0.5 0.0625 -0.823183 -0.5625 0.0625 -0.760522 -0.625 0.0625 -0.582078 -0.6875 0.0625 -0.315018 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.315018 -0.875 0.0625 0.582078 -0.9375 0.0625 0.760522 -1 0.0625 0.823183 - -0 0.125 0.630037 -0.0625 0.125 0.582078 -0.125 0.125 0.445503 -0.1875 0.125 0.241105 -0.25 0.125 9.71445e-17 -0.3125 0.125 -0.241105 -0.375 0.125 -0.445503 -0.4375 0.125 -0.582078 -0.5 0.125 -0.630037 -0.5625 0.125 -0.582078 -0.625 0.125 -0.445503 -0.6875 0.125 -0.241105 -0.75 0.125 -6.93889e-17 -0.8125 0.125 0.241105 -0.875 0.125 0.445503 -0.9375 0.125 0.582078 -1 0.125 0.630037 - -0 0.1875 0.340973 -0.0625 0.1875 0.315018 -0.125 0.1875 0.241105 -0.1875 0.1875 0.130485 -0.25 0.1875 4.85723e-17 -0.3125 0.1875 -0.130485 -0.375 0.1875 -0.241105 -0.4375 0.1875 -0.315018 -0.5 0.1875 -0.340973 -0.5625 0.1875 -0.315018 -0.625 0.1875 -0.241105 -0.6875 0.1875 -0.130485 -0.75 0.1875 -3.46945e-17 -0.8125 0.1875 0.130485 -0.875 0.1875 0.241105 -0.9375 0.1875 0.315018 -1 0.1875 0.340973 - -0 0.25 1.11022e-16 -0.0625 0.25 0 -0.125 0.25 5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -1.11022e-16 -0.5625 0.25 -5.55112e-17 -0.625 0.25 -5.55112e-17 -0.6875 0.25 0 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 1.11022e-16 - -0 0.3125 -0.340973 -0.0625 0.3125 -0.315018 -0.125 0.3125 -0.241105 -0.1875 0.3125 -0.130485 -0.25 0.3125 -4.16334e-17 -0.3125 0.3125 0.130485 -0.375 0.3125 0.241105 -0.4375 0.3125 0.315018 -0.5 0.3125 0.340973 -0.5625 0.3125 0.315018 -0.625 0.3125 0.241105 -0.6875 0.3125 0.130485 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.130485 -0.875 0.3125 -0.241105 -0.9375 0.3125 -0.315018 -1 0.3125 -0.340973 - -0 0.375 -0.630037 -0.0625 0.375 -0.582078 -0.125 0.375 -0.445503 -0.1875 0.375 -0.241105 -0.25 0.375 -8.32667e-17 -0.3125 0.375 0.241105 -0.375 0.375 0.445503 -0.4375 0.375 0.582078 -0.5 0.375 0.630037 -0.5625 0.375 0.582078 -0.625 0.375 0.445503 -0.6875 0.375 0.241105 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.241105 -0.875 0.375 -0.445503 -0.9375 0.375 -0.582078 -1 0.375 -0.630037 - -0 0.4375 -0.823183 -0.0625 0.4375 -0.760522 -0.125 0.4375 -0.582078 -0.1875 0.4375 -0.315018 -0.25 0.4375 -9.71445e-17 -0.3125 0.4375 0.315018 -0.375 0.4375 0.582078 -0.4375 0.4375 0.760522 -0.5 0.4375 0.823183 -0.5625 0.4375 0.760522 -0.625 0.4375 0.582078 -0.6875 0.4375 0.315018 -0.75 0.4375 1.249e-16 -0.8125 0.4375 -0.315018 -0.875 0.4375 -0.582078 -0.9375 0.4375 -0.760522 -1 0.4375 -0.823183 - -0 0.5 -0.891007 -0.0625 0.5 -0.823183 -0.125 0.5 -0.630037 -0.1875 0.5 -0.340973 -0.25 0.5 -1.11022e-16 -0.3125 0.5 0.340973 -0.375 0.5 0.630037 -0.4375 0.5 0.823183 -0.5 0.5 0.891007 -0.5625 0.5 0.823183 -0.625 0.5 0.630037 -0.6875 0.5 0.340973 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.340973 -0.875 0.5 -0.630037 -0.9375 0.5 -0.823183 -1 0.5 -0.891007 - -0 0.5625 -0.823183 -0.0625 0.5625 -0.760522 -0.125 0.5625 -0.582078 -0.1875 0.5625 -0.315018 -0.25 0.5625 -9.02056e-17 -0.3125 0.5625 0.315018 -0.375 0.5625 0.582078 -0.4375 0.5625 0.760522 -0.5 0.5625 0.823183 -0.5625 0.5625 0.760522 -0.625 0.5625 0.582078 -0.6875 0.5625 0.315018 -0.75 0.5625 1.31839e-16 -0.8125 0.5625 -0.315018 -0.875 0.5625 -0.582078 -0.9375 0.5625 -0.760522 -1 0.5625 -0.823183 - -0 0.625 -0.630037 -0.0625 0.625 -0.582078 -0.125 0.625 -0.445503 -0.1875 0.625 -0.241105 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.241105 -0.375 0.625 0.445503 -0.4375 0.625 0.582078 -0.5 0.625 0.630037 -0.5625 0.625 0.582078 -0.625 0.625 0.445503 -0.6875 0.625 0.241105 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.241105 -0.875 0.625 -0.445503 -0.9375 0.625 -0.582078 -1 0.625 -0.630037 - -0 0.6875 -0.340973 -0.0625 0.6875 -0.315018 -0.125 0.6875 -0.241105 -0.1875 0.6875 -0.130485 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.130485 -0.375 0.6875 0.241105 -0.4375 0.6875 0.315018 -0.5 0.6875 0.340973 -0.5625 0.6875 0.315018 -0.625 0.6875 0.241105 -0.6875 0.6875 0.130485 -0.75 0.6875 4.85723e-17 -0.8125 0.6875 -0.130485 -0.875 0.6875 -0.241105 -0.9375 0.6875 -0.315018 -1 0.6875 -0.340973 - -0 0.75 -1.11022e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 8.32667e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.340973 -0.0625 0.8125 0.315018 -0.125 0.8125 0.241105 -0.1875 0.8125 0.130485 -0.25 0.8125 4.16334e-17 -0.3125 0.8125 -0.130485 -0.375 0.8125 -0.241105 -0.4375 0.8125 -0.315018 -0.5 0.8125 -0.340973 -0.5625 0.8125 -0.315018 -0.625 0.8125 -0.241105 -0.6875 0.8125 -0.130485 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.130485 -0.875 0.8125 0.241105 -0.9375 0.8125 0.315018 -1 0.8125 0.340973 - -0 0.875 0.630037 -0.0625 0.875 0.582078 -0.125 0.875 0.445503 -0.1875 0.875 0.241105 -0.25 0.875 8.32667e-17 -0.3125 0.875 -0.241105 -0.375 0.875 -0.445503 -0.4375 0.875 -0.582078 -0.5 0.875 -0.630037 -0.5625 0.875 -0.582078 -0.625 0.875 -0.445503 -0.6875 0.875 -0.241105 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.241105 -0.875 0.875 0.445503 -0.9375 0.875 0.582078 -1 0.875 0.630037 - -0 0.9375 0.823183 -0.0625 0.9375 0.760522 -0.125 0.9375 0.582078 -0.1875 0.9375 0.315018 -0.25 0.9375 9.71445e-17 -0.3125 0.9375 -0.315018 -0.375 0.9375 -0.582078 -0.4375 0.9375 -0.760522 -0.5 0.9375 -0.823183 -0.5625 0.9375 -0.760522 -0.625 0.9375 -0.582078 -0.6875 0.9375 -0.315018 -0.75 0.9375 -1.249e-16 -0.8125 0.9375 0.315018 -0.875 0.9375 0.582078 -0.9375 0.9375 0.760522 -1 0.9375 0.823183 - -0 1 0.891007 -0.0625 1 0.823183 -0.125 1 0.630037 -0.1875 1 0.340973 -0.25 1 1.11022e-16 -0.3125 1 -0.340973 -0.375 1 -0.630037 -0.4375 1 -0.823183 -0.5 1 -0.891007 -0.5625 1 -0.823183 -0.625 1 -0.630037 -0.6875 1 -0.340973 -0.75 1 -1.11022e-16 -0.8125 1 0.340973 -0.875 1 0.630037 -0.9375 1 0.823183 -1 1 0.891007 - - -0 0 0.876307 -0.0625 0 0.809602 -0.125 0 0.619642 -0.1875 0 0.335348 -0.25 0 1.11022e-16 -0.3125 0 -0.335348 -0.375 0 -0.619642 -0.4375 0 -0.809602 -0.5 0 -0.876307 -0.5625 0 -0.809602 -0.625 0 -0.619642 -0.6875 0 -0.335348 -0.75 0 -1.11022e-16 -0.8125 0 0.335348 -0.875 0 0.619642 -0.9375 0 0.809602 -1 0 0.876307 - -0 0.0625 0.809602 -0.0625 0.0625 0.747975 -0.125 0.0625 0.572475 -0.1875 0.0625 0.309821 -0.25 0.0625 1.04083e-16 -0.3125 0.0625 -0.309821 -0.375 0.0625 -0.572475 -0.4375 0.0625 -0.747975 -0.5 0.0625 -0.809602 -0.5625 0.0625 -0.747975 -0.625 0.0625 -0.572475 -0.6875 0.0625 -0.309821 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.309821 -0.875 0.0625 0.572475 -0.9375 0.0625 0.747975 -1 0.0625 0.809602 - -0 0.125 0.619642 -0.0625 0.125 0.572475 -0.125 0.125 0.438153 -0.1875 0.125 0.237127 -0.25 0.125 9.71445e-17 -0.3125 0.125 -0.237127 -0.375 0.125 -0.438153 -0.4375 0.125 -0.572475 -0.5 0.125 -0.619642 -0.5625 0.125 -0.572475 -0.625 0.125 -0.438153 -0.6875 0.125 -0.237127 -0.75 0.125 -6.93889e-17 -0.8125 0.125 0.237127 -0.875 0.125 0.438153 -0.9375 0.125 0.572475 -1 0.125 0.619642 - -0 0.1875 0.335348 -0.0625 0.1875 0.309821 -0.125 0.1875 0.237127 -0.1875 0.1875 0.128332 -0.25 0.1875 4.85723e-17 -0.3125 0.1875 -0.128332 -0.375 0.1875 -0.237127 -0.4375 0.1875 -0.309821 -0.5 0.1875 -0.335348 -0.5625 0.1875 -0.309821 -0.625 0.1875 -0.237127 -0.6875 0.1875 -0.128332 -0.75 0.1875 -3.46945e-17 -0.8125 0.1875 0.128332 -0.875 0.1875 0.237127 -0.9375 0.1875 0.309821 -1 0.1875 0.335348 - -0 0.25 1.11022e-16 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 5.55112e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -1.11022e-16 -0.5 0.25 0 -0.5625 0.25 -5.55112e-17 -0.625 0.25 -5.55112e-17 -0.6875 0.25 0 -0.75 0.25 -1.2326e-32 -0.8125 0.25 5.55112e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 1.11022e-16 - -0 0.3125 -0.335348 -0.0625 0.3125 -0.309821 -0.125 0.3125 -0.237127 -0.1875 0.3125 -0.128332 -0.25 0.3125 -4.16334e-17 -0.3125 0.3125 0.128332 -0.375 0.3125 0.237127 -0.4375 0.3125 0.309821 -0.5 0.3125 0.335348 -0.5625 0.3125 0.309821 -0.625 0.3125 0.237127 -0.6875 0.3125 0.128332 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.128332 -0.875 0.3125 -0.237127 -0.9375 0.3125 -0.309821 -1 0.3125 -0.335348 - -0 0.375 -0.619642 -0.0625 0.375 -0.572475 -0.125 0.375 -0.438153 -0.1875 0.375 -0.237127 -0.25 0.375 -8.32667e-17 -0.3125 0.375 0.237127 -0.375 0.375 0.438153 -0.4375 0.375 0.572475 -0.5 0.375 0.619642 -0.5625 0.375 0.572475 -0.625 0.375 0.438153 -0.6875 0.375 0.237127 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.237127 -0.875 0.375 -0.438153 -0.9375 0.375 -0.572475 -1 0.375 -0.619642 - -0 0.4375 -0.809602 -0.0625 0.4375 -0.747975 -0.125 0.4375 -0.572475 -0.1875 0.4375 -0.309821 -0.25 0.4375 -9.71445e-17 -0.3125 0.4375 0.309821 -0.375 0.4375 0.572475 -0.4375 0.4375 0.747975 -0.5 0.4375 0.809602 -0.5625 0.4375 0.747975 -0.625 0.4375 0.572475 -0.6875 0.4375 0.309821 -0.75 0.4375 1.249e-16 -0.8125 0.4375 -0.309821 -0.875 0.4375 -0.572475 -0.9375 0.4375 -0.747975 -1 0.4375 -0.809602 - -0 0.5 -0.876307 -0.0625 0.5 -0.809602 -0.125 0.5 -0.619642 -0.1875 0.5 -0.335348 -0.25 0.5 -1.11022e-16 -0.3125 0.5 0.335348 -0.375 0.5 0.619642 -0.4375 0.5 0.809602 -0.5 0.5 0.876307 -0.5625 0.5 0.809602 -0.625 0.5 0.619642 -0.6875 0.5 0.335348 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.335348 -0.875 0.5 -0.619642 -0.9375 0.5 -0.809602 -1 0.5 -0.876307 - -0 0.5625 -0.809602 -0.0625 0.5625 -0.747975 -0.125 0.5625 -0.572475 -0.1875 0.5625 -0.309821 -0.25 0.5625 -9.02056e-17 -0.3125 0.5625 0.309821 -0.375 0.5625 0.572475 -0.4375 0.5625 0.747975 -0.5 0.5625 0.809602 -0.5625 0.5625 0.747975 -0.625 0.5625 0.572475 -0.6875 0.5625 0.309821 -0.75 0.5625 1.31839e-16 -0.8125 0.5625 -0.309821 -0.875 0.5625 -0.572475 -0.9375 0.5625 -0.747975 -1 0.5625 -0.809602 - -0 0.625 -0.619642 -0.0625 0.625 -0.572475 -0.125 0.625 -0.438153 -0.1875 0.625 -0.237127 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.237127 -0.375 0.625 0.438153 -0.4375 0.625 0.572475 -0.5 0.625 0.619642 -0.5625 0.625 0.572475 -0.625 0.625 0.438153 -0.6875 0.625 0.237127 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.237127 -0.875 0.625 -0.438153 -0.9375 0.625 -0.572475 -1 0.625 -0.619642 - -0 0.6875 -0.335348 -0.0625 0.6875 -0.309821 -0.125 0.6875 -0.237127 -0.1875 0.6875 -0.128332 -0.25 0.6875 -3.64292e-17 -0.3125 0.6875 0.128332 -0.375 0.6875 0.237127 -0.4375 0.6875 0.309821 -0.5 0.6875 0.335348 -0.5625 0.6875 0.309821 -0.625 0.6875 0.237127 -0.6875 0.6875 0.128332 -0.75 0.6875 4.68375e-17 -0.8125 0.6875 -0.128332 -0.875 0.6875 -0.237127 -0.9375 0.6875 -0.309821 -1 0.6875 -0.335348 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 2.22045e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 8.32667e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.335348 -0.0625 0.8125 0.309821 -0.125 0.8125 0.237127 -0.1875 0.8125 0.128332 -0.25 0.8125 4.16334e-17 -0.3125 0.8125 -0.128332 -0.375 0.8125 -0.237127 -0.4375 0.8125 -0.309821 -0.5 0.8125 -0.335348 -0.5625 0.8125 -0.309821 -0.625 0.8125 -0.237127 -0.6875 0.8125 -0.128332 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.128332 -0.875 0.8125 0.237127 -0.9375 0.8125 0.309821 -1 0.8125 0.335348 - -0 0.875 0.619642 -0.0625 0.875 0.572475 -0.125 0.875 0.438153 -0.1875 0.875 0.237127 -0.25 0.875 8.32667e-17 -0.3125 0.875 -0.237127 -0.375 0.875 -0.438153 -0.4375 0.875 -0.572475 -0.5 0.875 -0.619642 -0.5625 0.875 -0.572475 -0.625 0.875 -0.438153 -0.6875 0.875 -0.237127 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.237127 -0.875 0.875 0.438153 -0.9375 0.875 0.572475 -1 0.875 0.619642 - -0 0.9375 0.809602 -0.0625 0.9375 0.747975 -0.125 0.9375 0.572475 -0.1875 0.9375 0.309821 -0.25 0.9375 9.71445e-17 -0.3125 0.9375 -0.309821 -0.375 0.9375 -0.572475 -0.4375 0.9375 -0.747975 -0.5 0.9375 -0.809602 -0.5625 0.9375 -0.747975 -0.625 0.9375 -0.572475 -0.6875 0.9375 -0.309821 -0.75 0.9375 -1.249e-16 -0.8125 0.9375 0.309821 -0.875 0.9375 0.572475 -0.9375 0.9375 0.747975 -1 0.9375 0.809602 - -0 1 0.876307 -0.0625 1 0.809602 -0.125 1 0.619642 -0.1875 1 0.335348 -0.25 1 1.11022e-16 -0.3125 1 -0.335348 -0.375 1 -0.619642 -0.4375 1 -0.809602 -0.5 1 -0.876307 -0.5625 1 -0.809602 -0.625 1 -0.619642 -0.6875 1 -0.335348 -0.75 1 -1.11022e-16 -0.8125 1 0.335348 -0.875 1 0.619642 -0.9375 1 0.809602 -1 1 0.876307 - - -0 0 0.860742 -0.0625 0 0.795222 -0.125 0 0.608637 -0.1875 0 0.329392 -0.25 0 5.55112e-17 -0.3125 0 -0.329392 -0.375 0 -0.608637 -0.4375 0 -0.795222 -0.5 0 -0.860742 -0.5625 0 -0.795222 -0.625 0 -0.608637 -0.6875 0 -0.329392 -0.75 0 -1.66533e-16 -0.8125 0 0.329392 -0.875 0 0.608637 -0.9375 0 0.795222 -1 0 0.860742 - -0 0.0625 0.795222 -0.0625 0.0625 0.734689 -0.125 0.0625 0.562307 -0.1875 0.0625 0.304318 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.304318 -0.375 0.0625 -0.562307 -0.4375 0.0625 -0.734689 -0.5 0.0625 -0.795222 -0.5625 0.0625 -0.734689 -0.625 0.0625 -0.562307 -0.6875 0.0625 -0.304318 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.304318 -0.875 0.0625 0.562307 -0.9375 0.0625 0.734689 -1 0.0625 0.795222 - -0 0.125 0.608637 -0.0625 0.125 0.562307 -0.125 0.125 0.430371 -0.1875 0.125 0.232915 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.232915 -0.375 0.125 -0.430371 -0.4375 0.125 -0.562307 -0.5 0.125 -0.608637 -0.5625 0.125 -0.562307 -0.625 0.125 -0.430371 -0.6875 0.125 -0.232915 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.232915 -0.875 0.125 0.430371 -0.9375 0.125 0.562307 -1 0.125 0.608637 - -0 0.1875 0.329392 -0.0625 0.1875 0.304318 -0.125 0.1875 0.232915 -0.1875 0.1875 0.126053 -0.25 0.1875 2.08167e-17 -0.3125 0.1875 -0.126053 -0.375 0.1875 -0.232915 -0.4375 0.1875 -0.304318 -0.5 0.1875 -0.329392 -0.5625 0.1875 -0.304318 -0.625 0.1875 -0.232915 -0.6875 0.1875 -0.126053 -0.75 0.1875 -6.245e-17 -0.8125 0.1875 0.126053 -0.875 0.1875 0.232915 -0.9375 0.1875 0.304318 -1 0.1875 0.329392 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 0 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 0 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.329392 -0.0625 0.3125 -0.304318 -0.125 0.3125 -0.232915 -0.1875 0.3125 -0.126053 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.126053 -0.375 0.3125 0.232915 -0.4375 0.3125 0.304318 -0.5 0.3125 0.329392 -0.5625 0.3125 0.304318 -0.625 0.3125 0.232915 -0.6875 0.3125 0.126053 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.126053 -0.875 0.3125 -0.232915 -0.9375 0.3125 -0.304318 -1 0.3125 -0.329392 - -0 0.375 -0.608637 -0.0625 0.375 -0.562307 -0.125 0.375 -0.430371 -0.1875 0.375 -0.232915 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.232915 -0.375 0.375 0.430371 -0.4375 0.375 0.562307 -0.5 0.375 0.608637 -0.5625 0.375 0.562307 -0.625 0.375 0.430371 -0.6875 0.375 0.232915 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.232915 -0.875 0.375 -0.430371 -0.9375 0.375 -0.562307 -1 0.375 -0.608637 - -0 0.4375 -0.795222 -0.0625 0.4375 -0.734689 -0.125 0.4375 -0.562307 -0.1875 0.4375 -0.304318 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.304318 -0.375 0.4375 0.562307 -0.4375 0.4375 0.734689 -0.5 0.4375 0.795222 -0.5625 0.4375 0.734689 -0.625 0.4375 0.562307 -0.6875 0.4375 0.304318 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.304318 -0.875 0.4375 -0.562307 -0.9375 0.4375 -0.734689 -1 0.4375 -0.795222 - -0 0.5 -0.860742 -0.0625 0.5 -0.795222 -0.125 0.5 -0.608637 -0.1875 0.5 -0.329392 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.329392 -0.375 0.5 0.608637 -0.4375 0.5 0.795222 -0.5 0.5 0.860742 -0.5625 0.5 0.795222 -0.625 0.5 0.608637 -0.6875 0.5 0.329392 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.329392 -0.875 0.5 -0.608637 -0.9375 0.5 -0.795222 -1 0.5 -0.860742 - -0 0.5625 -0.795222 -0.0625 0.5625 -0.734689 -0.125 0.5625 -0.562307 -0.1875 0.5625 -0.304318 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.304318 -0.375 0.5625 0.562307 -0.4375 0.5625 0.734689 -0.5 0.5625 0.795222 -0.5625 0.5625 0.734689 -0.625 0.5625 0.562307 -0.6875 0.5625 0.304318 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.304318 -0.875 0.5625 -0.562307 -0.9375 0.5625 -0.734689 -1 0.5625 -0.795222 - -0 0.625 -0.608637 -0.0625 0.625 -0.562307 -0.125 0.625 -0.430371 -0.1875 0.625 -0.232915 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.232915 -0.375 0.625 0.430371 -0.4375 0.625 0.562307 -0.5 0.625 0.608637 -0.5625 0.625 0.562307 -0.625 0.625 0.430371 -0.6875 0.625 0.232915 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.232915 -0.875 0.625 -0.430371 -0.9375 0.625 -0.562307 -1 0.625 -0.608637 - -0 0.6875 -0.329392 -0.0625 0.6875 -0.304318 -0.125 0.6875 -0.232915 -0.1875 0.6875 -0.126053 -0.25 0.6875 -3.64292e-17 -0.3125 0.6875 0.126053 -0.375 0.6875 0.232915 -0.4375 0.6875 0.304318 -0.5 0.6875 0.329392 -0.5625 0.6875 0.304318 -0.625 0.6875 0.232915 -0.6875 0.6875 0.126053 -0.75 0.6875 4.68375e-17 -0.8125 0.6875 -0.126053 -0.875 0.6875 -0.232915 -0.9375 0.6875 -0.304318 -1 0.6875 -0.329392 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 2.22045e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.329392 -0.0625 0.8125 0.304318 -0.125 0.8125 0.232915 -0.1875 0.8125 0.126053 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.126053 -0.375 0.8125 -0.232915 -0.4375 0.8125 -0.304318 -0.5 0.8125 -0.329392 -0.5625 0.8125 -0.304318 -0.625 0.8125 -0.232915 -0.6875 0.8125 -0.126053 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.126053 -0.875 0.8125 0.232915 -0.9375 0.8125 0.304318 -1 0.8125 0.329392 - -0 0.875 0.608637 -0.0625 0.875 0.562307 -0.125 0.875 0.430371 -0.1875 0.875 0.232915 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.232915 -0.375 0.875 -0.430371 -0.4375 0.875 -0.562307 -0.5 0.875 -0.608637 -0.5625 0.875 -0.562307 -0.625 0.875 -0.430371 -0.6875 0.875 -0.232915 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.232915 -0.875 0.875 0.430371 -0.9375 0.875 0.562307 -1 0.875 0.608637 - -0 0.9375 0.795222 -0.0625 0.9375 0.734689 -0.125 0.9375 0.562307 -0.1875 0.9375 0.304318 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.304318 -0.375 0.9375 -0.562307 -0.4375 0.9375 -0.734689 -0.5 0.9375 -0.795222 -0.5625 0.9375 -0.734689 -0.625 0.9375 -0.562307 -0.6875 0.9375 -0.304318 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.304318 -0.875 0.9375 0.562307 -0.9375 0.9375 0.734689 -1 0.9375 0.795222 - -0 1 0.860742 -0.0625 1 0.795222 -0.125 1 0.608637 -0.1875 1 0.329392 -0.25 1 5.55112e-17 -0.3125 1 -0.329392 -0.375 1 -0.608637 -0.4375 1 -0.795222 -0.5 1 -0.860742 -0.5625 1 -0.795222 -0.625 1 -0.608637 -0.6875 1 -0.329392 -0.75 1 -1.66533e-16 -0.8125 1 0.329392 -0.875 1 0.608637 -0.9375 1 0.795222 -1 1 0.860742 - - -0 0 0.844328 -0.0625 0 0.780057 -0.125 0 0.59703 -0.1875 0 0.32311 -0.25 0 5.55112e-17 -0.3125 0 -0.32311 -0.375 0 -0.59703 -0.4375 0 -0.780057 -0.5 0 -0.844328 -0.5625 0 -0.780057 -0.625 0 -0.59703 -0.6875 0 -0.32311 -0.75 0 -1.66533e-16 -0.8125 0 0.32311 -0.875 0 0.59703 -0.9375 0 0.780057 -1 0 0.844328 - -0 0.0625 0.780057 -0.0625 0.0625 0.720679 -0.125 0.0625 0.551584 -0.1875 0.0625 0.298515 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.298515 -0.375 0.0625 -0.551584 -0.4375 0.0625 -0.720679 -0.5 0.0625 -0.780057 -0.5625 0.0625 -0.720679 -0.625 0.0625 -0.551584 -0.6875 0.0625 -0.298515 -0.75 0.0625 -1.73472e-16 -0.8125 0.0625 0.298515 -0.875 0.0625 0.551584 -0.9375 0.0625 0.720679 -1 0.0625 0.780057 - -0 0.125 0.59703 -0.0625 0.125 0.551584 -0.125 0.125 0.422164 -0.1875 0.125 0.228473 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.228473 -0.375 0.125 -0.422164 -0.4375 0.125 -0.551584 -0.5 0.125 -0.59703 -0.5625 0.125 -0.551584 -0.625 0.125 -0.422164 -0.6875 0.125 -0.228473 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.228473 -0.875 0.125 0.422164 -0.9375 0.125 0.551584 -1 0.125 0.59703 - -0 0.1875 0.32311 -0.0625 0.1875 0.298515 -0.125 0.1875 0.228473 -0.1875 0.1875 0.123649 -0.25 0.1875 2.25514e-17 -0.3125 0.1875 -0.123649 -0.375 0.1875 -0.228473 -0.4375 0.1875 -0.298515 -0.5 0.1875 -0.32311 -0.5625 0.1875 -0.298515 -0.625 0.1875 -0.228473 -0.6875 0.1875 -0.123649 -0.75 0.1875 -6.07153e-17 -0.8125 0.1875 0.123649 -0.875 0.1875 0.228473 -0.9375 0.1875 0.298515 -1 0.1875 0.32311 - -0 0.25 5.55112e-17 -0.0625 0.25 0 -0.125 0.25 1.11022e-16 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 0 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -1.11022e-16 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 1.11022e-16 -0.9375 0.25 5.55112e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.32311 -0.0625 0.3125 -0.298515 -0.125 0.3125 -0.228473 -0.1875 0.3125 -0.123649 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.123649 -0.375 0.3125 0.228473 -0.4375 0.3125 0.298515 -0.5 0.3125 0.32311 -0.5625 0.3125 0.298515 -0.625 0.3125 0.228473 -0.6875 0.3125 0.123649 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.123649 -0.875 0.3125 -0.228473 -0.9375 0.3125 -0.298515 -1 0.3125 -0.32311 - -0 0.375 -0.59703 -0.0625 0.375 -0.551584 -0.125 0.375 -0.422164 -0.1875 0.375 -0.228473 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.228473 -0.375 0.375 0.422164 -0.4375 0.375 0.551584 -0.5 0.375 0.59703 -0.5625 0.375 0.551584 -0.625 0.375 0.422164 -0.6875 0.375 0.228473 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.228473 -0.875 0.375 -0.422164 -0.9375 0.375 -0.551584 -1 0.375 -0.59703 - -0 0.4375 -0.780057 -0.0625 0.4375 -0.720679 -0.125 0.4375 -0.551584 -0.1875 0.4375 -0.298515 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.298515 -0.375 0.4375 0.551584 -0.4375 0.4375 0.720679 -0.5 0.4375 0.780057 -0.5625 0.4375 0.720679 -0.625 0.4375 0.551584 -0.6875 0.4375 0.298515 -0.75 0.4375 1.66533e-16 -0.8125 0.4375 -0.298515 -0.875 0.4375 -0.551584 -0.9375 0.4375 -0.720679 -1 0.4375 -0.780057 - -0 0.5 -0.844328 -0.0625 0.5 -0.780057 -0.125 0.5 -0.59703 -0.1875 0.5 -0.32311 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.32311 -0.375 0.5 0.59703 -0.4375 0.5 0.780057 -0.5 0.5 0.844328 -0.5625 0.5 0.780057 -0.625 0.5 0.59703 -0.6875 0.5 0.32311 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.32311 -0.875 0.5 -0.59703 -0.9375 0.5 -0.780057 -1 0.5 -0.844328 - -0 0.5625 -0.780057 -0.0625 0.5625 -0.720679 -0.125 0.5625 -0.551584 -0.1875 0.5625 -0.298515 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.298515 -0.375 0.5625 0.551584 -0.4375 0.5625 0.720679 -0.5 0.5625 0.780057 -0.5625 0.5625 0.720679 -0.625 0.5625 0.551584 -0.6875 0.5625 0.298515 -0.75 0.5625 1.59595e-16 -0.8125 0.5625 -0.298515 -0.875 0.5625 -0.551584 -0.9375 0.5625 -0.720679 -1 0.5625 -0.780057 - -0 0.625 -0.59703 -0.0625 0.625 -0.551584 -0.125 0.625 -0.422164 -0.1875 0.625 -0.228473 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.228473 -0.375 0.625 0.422164 -0.4375 0.625 0.551584 -0.5 0.625 0.59703 -0.5625 0.625 0.551584 -0.625 0.625 0.422164 -0.6875 0.625 0.228473 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.228473 -0.875 0.625 -0.422164 -0.9375 0.625 -0.551584 -1 0.625 -0.59703 - -0 0.6875 -0.32311 -0.0625 0.6875 -0.298515 -0.125 0.6875 -0.228473 -0.1875 0.6875 -0.123649 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.123649 -0.375 0.6875 0.228473 -0.4375 0.6875 0.298515 -0.5 0.6875 0.32311 -0.5625 0.6875 0.298515 -0.625 0.6875 0.228473 -0.6875 0.6875 0.123649 -0.75 0.6875 4.85723e-17 -0.8125 0.6875 -0.123649 -0.875 0.6875 -0.228473 -0.9375 0.6875 -0.298515 -1 0.6875 -0.32311 - -0 0.75 -1.66533e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 2.22045e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -1.66533e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.32311 -0.0625 0.8125 0.298515 -0.125 0.8125 0.228473 -0.1875 0.8125 0.123649 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.123649 -0.375 0.8125 -0.228473 -0.4375 0.8125 -0.298515 -0.5 0.8125 -0.32311 -0.5625 0.8125 -0.298515 -0.625 0.8125 -0.228473 -0.6875 0.8125 -0.123649 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.123649 -0.875 0.8125 0.228473 -0.9375 0.8125 0.298515 -1 0.8125 0.32311 - -0 0.875 0.59703 -0.0625 0.875 0.551584 -0.125 0.875 0.422164 -0.1875 0.875 0.228473 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.228473 -0.375 0.875 -0.422164 -0.4375 0.875 -0.551584 -0.5 0.875 -0.59703 -0.5625 0.875 -0.551584 -0.625 0.875 -0.422164 -0.6875 0.875 -0.228473 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.228473 -0.875 0.875 0.422164 -0.9375 0.875 0.551584 -1 0.875 0.59703 - -0 0.9375 0.780057 -0.0625 0.9375 0.720679 -0.125 0.9375 0.551584 -0.1875 0.9375 0.298515 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.298515 -0.375 0.9375 -0.551584 -0.4375 0.9375 -0.720679 -0.5 0.9375 -0.780057 -0.5625 0.9375 -0.720679 -0.625 0.9375 -0.551584 -0.6875 0.9375 -0.298515 -0.75 0.9375 -1.66533e-16 -0.8125 0.9375 0.298515 -0.875 0.9375 0.551584 -0.9375 0.9375 0.720679 -1 0.9375 0.780057 - -0 1 0.844328 -0.0625 1 0.780057 -0.125 1 0.59703 -0.1875 1 0.32311 -0.25 1 5.55112e-17 -0.3125 1 -0.32311 -0.375 1 -0.59703 -0.4375 1 -0.780057 -0.5 1 -0.844328 -0.5625 1 -0.780057 -0.625 1 -0.59703 -0.6875 1 -0.32311 -0.75 1 -1.66533e-16 -0.8125 1 0.32311 -0.875 1 0.59703 -0.9375 1 0.780057 -1 1 0.844328 - - -0 0 0.827081 -0.0625 0 0.764123 -0.125 0 0.584834 -0.1875 0 0.31651 -0.25 0 1.11022e-16 -0.3125 0 -0.31651 -0.375 0 -0.584834 -0.4375 0 -0.764123 -0.5 0 -0.827081 -0.5625 0 -0.764123 -0.625 0 -0.584834 -0.6875 0 -0.31651 -0.75 0 -1.11022e-16 -0.8125 0 0.31651 -0.875 0 0.584834 -0.9375 0 0.764123 -1 0 0.827081 - -0 0.0625 0.764123 -0.0625 0.0625 0.705957 -0.125 0.0625 0.540316 -0.1875 0.0625 0.292417 -0.25 0.0625 1.04083e-16 -0.3125 0.0625 -0.292417 -0.375 0.0625 -0.540316 -0.4375 0.0625 -0.705957 -0.5 0.0625 -0.764123 -0.5625 0.0625 -0.705957 -0.625 0.0625 -0.540316 -0.6875 0.0625 -0.292417 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.292417 -0.875 0.0625 0.540316 -0.9375 0.0625 0.705957 -1 0.0625 0.764123 - -0 0.125 0.584834 -0.0625 0.125 0.540316 -0.125 0.125 0.41354 -0.1875 0.125 0.223806 -0.25 0.125 9.71445e-17 -0.3125 0.125 -0.223806 -0.375 0.125 -0.41354 -0.4375 0.125 -0.540316 -0.5 0.125 -0.584834 -0.5625 0.125 -0.540316 -0.625 0.125 -0.41354 -0.6875 0.125 -0.223806 -0.75 0.125 -6.93889e-17 -0.8125 0.125 0.223806 -0.875 0.125 0.41354 -0.9375 0.125 0.540316 -1 0.125 0.584834 - -0 0.1875 0.31651 -0.0625 0.1875 0.292417 -0.125 0.1875 0.223806 -0.1875 0.1875 0.121123 -0.25 0.1875 5.0307e-17 -0.3125 0.1875 -0.121123 -0.375 0.1875 -0.223806 -0.4375 0.1875 -0.292417 -0.5 0.1875 -0.31651 -0.5625 0.1875 -0.292417 -0.625 0.1875 -0.223806 -0.6875 0.1875 -0.121123 -0.75 0.1875 -3.29597e-17 -0.8125 0.1875 0.121123 -0.875 0.1875 0.223806 -0.9375 0.1875 0.292417 -1 0.1875 0.31651 - -0 0.25 1.11022e-16 -0.0625 0.25 0 -0.125 0.25 5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 0 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -5.55112e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 5.55112e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 5.55112e-17 -1 0.25 1.11022e-16 - -0 0.3125 -0.31651 -0.0625 0.3125 -0.292417 -0.125 0.3125 -0.223806 -0.1875 0.3125 -0.121123 -0.25 0.3125 -4.16334e-17 -0.3125 0.3125 0.121123 -0.375 0.3125 0.223806 -0.4375 0.3125 0.292417 -0.5 0.3125 0.31651 -0.5625 0.3125 0.292417 -0.625 0.3125 0.223806 -0.6875 0.3125 0.121123 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.121123 -0.875 0.3125 -0.223806 -0.9375 0.3125 -0.292417 -1 0.3125 -0.31651 - -0 0.375 -0.584834 -0.0625 0.375 -0.540316 -0.125 0.375 -0.41354 -0.1875 0.375 -0.223806 -0.25 0.375 -8.32667e-17 -0.3125 0.375 0.223806 -0.375 0.375 0.41354 -0.4375 0.375 0.540316 -0.5 0.375 0.584834 -0.5625 0.375 0.540316 -0.625 0.375 0.41354 -0.6875 0.375 0.223806 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.223806 -0.875 0.375 -0.41354 -0.9375 0.375 -0.540316 -1 0.375 -0.584834 - -0 0.4375 -0.764123 -0.0625 0.4375 -0.705957 -0.125 0.4375 -0.540316 -0.1875 0.4375 -0.292417 -0.25 0.4375 -9.71445e-17 -0.3125 0.4375 0.292417 -0.375 0.4375 0.540316 -0.4375 0.4375 0.705957 -0.5 0.4375 0.764123 -0.5625 0.4375 0.705957 -0.625 0.4375 0.540316 -0.6875 0.4375 0.292417 -0.75 0.4375 1.249e-16 -0.8125 0.4375 -0.292417 -0.875 0.4375 -0.540316 -0.9375 0.4375 -0.705957 -1 0.4375 -0.764123 - -0 0.5 -0.827081 -0.0625 0.5 -0.764123 -0.125 0.5 -0.584834 -0.1875 0.5 -0.31651 -0.25 0.5 -1.11022e-16 -0.3125 0.5 0.31651 -0.375 0.5 0.584834 -0.4375 0.5 0.764123 -0.5 0.5 0.827081 -0.5625 0.5 0.764123 -0.625 0.5 0.584834 -0.6875 0.5 0.31651 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.31651 -0.875 0.5 -0.584834 -0.9375 0.5 -0.764123 -1 0.5 -0.827081 - -0 0.5625 -0.764123 -0.0625 0.5625 -0.705957 -0.125 0.5625 -0.540316 -0.1875 0.5625 -0.292417 -0.25 0.5625 -9.02056e-17 -0.3125 0.5625 0.292417 -0.375 0.5625 0.540316 -0.4375 0.5625 0.705957 -0.5 0.5625 0.764123 -0.5625 0.5625 0.705957 -0.625 0.5625 0.540316 -0.6875 0.5625 0.292417 -0.75 0.5625 1.31839e-16 -0.8125 0.5625 -0.292417 -0.875 0.5625 -0.540316 -0.9375 0.5625 -0.705957 -1 0.5625 -0.764123 - -0 0.625 -0.584834 -0.0625 0.625 -0.540316 -0.125 0.625 -0.41354 -0.1875 0.625 -0.223806 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.223806 -0.375 0.625 0.41354 -0.4375 0.625 0.540316 -0.5 0.625 0.584834 -0.5625 0.625 0.540316 -0.625 0.625 0.41354 -0.6875 0.625 0.223806 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.223806 -0.875 0.625 -0.41354 -0.9375 0.625 -0.540316 -1 0.625 -0.584834 - -0 0.6875 -0.31651 -0.0625 0.6875 -0.292417 -0.125 0.6875 -0.223806 -0.1875 0.6875 -0.121123 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.121123 -0.375 0.6875 0.223806 -0.4375 0.6875 0.292417 -0.5 0.6875 0.31651 -0.5625 0.6875 0.292417 -0.625 0.6875 0.223806 -0.6875 0.6875 0.121123 -0.75 0.6875 4.85723e-17 -0.8125 0.6875 -0.121123 -0.875 0.6875 -0.223806 -0.9375 0.6875 -0.292417 -1 0.6875 -0.31651 - -0 0.75 -1.11022e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -8.32667e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 8.32667e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 2.22045e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 2.77556e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.66533e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.31651 -0.0625 0.8125 0.292417 -0.125 0.8125 0.223806 -0.1875 0.8125 0.121123 -0.25 0.8125 4.16334e-17 -0.3125 0.8125 -0.121123 -0.375 0.8125 -0.223806 -0.4375 0.8125 -0.292417 -0.5 0.8125 -0.31651 -0.5625 0.8125 -0.292417 -0.625 0.8125 -0.223806 -0.6875 0.8125 -0.121123 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.121123 -0.875 0.8125 0.223806 -0.9375 0.8125 0.292417 -1 0.8125 0.31651 - -0 0.875 0.584834 -0.0625 0.875 0.540316 -0.125 0.875 0.41354 -0.1875 0.875 0.223806 -0.25 0.875 8.32667e-17 -0.3125 0.875 -0.223806 -0.375 0.875 -0.41354 -0.4375 0.875 -0.540316 -0.5 0.875 -0.584834 -0.5625 0.875 -0.540316 -0.625 0.875 -0.41354 -0.6875 0.875 -0.223806 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.223806 -0.875 0.875 0.41354 -0.9375 0.875 0.540316 -1 0.875 0.584834 - -0 0.9375 0.764123 -0.0625 0.9375 0.705957 -0.125 0.9375 0.540316 -0.1875 0.9375 0.292417 -0.25 0.9375 9.71445e-17 -0.3125 0.9375 -0.292417 -0.375 0.9375 -0.540316 -0.4375 0.9375 -0.705957 -0.5 0.9375 -0.764123 -0.5625 0.9375 -0.705957 -0.625 0.9375 -0.540316 -0.6875 0.9375 -0.292417 -0.75 0.9375 -1.249e-16 -0.8125 0.9375 0.292417 -0.875 0.9375 0.540316 -0.9375 0.9375 0.705957 -1 0.9375 0.764123 - -0 1 0.827081 -0.0625 1 0.764123 -0.125 1 0.584834 -0.1875 1 0.31651 -0.25 1 1.11022e-16 -0.3125 1 -0.31651 -0.375 1 -0.584834 -0.4375 1 -0.764123 -0.5 1 -0.827081 -0.5625 1 -0.764123 -0.625 1 -0.584834 -0.6875 1 -0.31651 -0.75 1 -1.11022e-16 -0.8125 1 0.31651 -0.875 1 0.584834 -0.9375 1 0.764123 -1 1 0.827081 - - -0 0 0.809017 -0.0625 0 0.747434 -0.125 0 0.572061 -0.1875 0 0.309597 -0.25 0 5.55112e-17 -0.3125 0 -0.309597 -0.375 0 -0.572061 -0.4375 0 -0.747434 -0.5 0 -0.809017 -0.5625 0 -0.747434 -0.625 0 -0.572061 -0.6875 0 -0.309597 -0.75 0 -1.66533e-16 -0.8125 0 0.309597 -0.875 0 0.572061 -0.9375 0 0.747434 -1 0 0.809017 - -0 0.0625 0.747434 -0.0625 0.0625 0.690539 -0.125 0.0625 0.528516 -0.1875 0.0625 0.286031 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.286031 -0.375 0.0625 -0.528516 -0.4375 0.0625 -0.690539 -0.5 0.0625 -0.747434 -0.5625 0.0625 -0.690539 -0.625 0.0625 -0.528516 -0.6875 0.0625 -0.286031 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.286031 -0.875 0.0625 0.528516 -0.9375 0.0625 0.690539 -1 0.0625 0.747434 - -0 0.125 0.572061 -0.0625 0.125 0.528516 -0.125 0.125 0.404508 -0.1875 0.125 0.218918 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.218918 -0.375 0.125 -0.404508 -0.4375 0.125 -0.528516 -0.5 0.125 -0.572061 -0.5625 0.125 -0.528516 -0.625 0.125 -0.404508 -0.6875 0.125 -0.218918 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.218918 -0.875 0.125 0.404508 -0.9375 0.125 0.528516 -1 0.125 0.572061 - -0 0.1875 0.309597 -0.0625 0.1875 0.286031 -0.125 0.1875 0.218918 -0.1875 0.1875 0.118478 -0.25 0.1875 2.25514e-17 -0.3125 0.1875 -0.118478 -0.375 0.1875 -0.218918 -0.4375 0.1875 -0.286031 -0.5 0.1875 -0.309597 -0.5625 0.1875 -0.286031 -0.625 0.1875 -0.218918 -0.6875 0.1875 -0.118478 -0.75 0.1875 -6.07153e-17 -0.8125 0.1875 0.118478 -0.875 0.1875 0.218918 -0.9375 0.1875 0.286031 -1 0.1875 0.309597 - -0 0.25 5.55112e-17 -0.0625 0.25 1.11022e-16 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -1.11022e-16 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -1.11022e-16 -0.625 0.25 -1.11022e-16 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 1.11022e-16 -0.9375 0.25 5.55112e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.309597 -0.0625 0.3125 -0.286031 -0.125 0.3125 -0.218918 -0.1875 0.3125 -0.118478 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.118478 -0.375 0.3125 0.218918 -0.4375 0.3125 0.286031 -0.5 0.3125 0.309597 -0.5625 0.3125 0.286031 -0.625 0.3125 0.218918 -0.6875 0.3125 0.118478 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.118478 -0.875 0.3125 -0.218918 -0.9375 0.3125 -0.286031 -1 0.3125 -0.309597 - -0 0.375 -0.572061 -0.0625 0.375 -0.528516 -0.125 0.375 -0.404508 -0.1875 0.375 -0.218918 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.218918 -0.375 0.375 0.404508 -0.4375 0.375 0.528516 -0.5 0.375 0.572061 -0.5625 0.375 0.528516 -0.625 0.375 0.404508 -0.6875 0.375 0.218918 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.218918 -0.875 0.375 -0.404508 -0.9375 0.375 -0.528516 -1 0.375 -0.572061 - -0 0.4375 -0.747434 -0.0625 0.4375 -0.690539 -0.125 0.4375 -0.528516 -0.1875 0.4375 -0.286031 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.286031 -0.375 0.4375 0.528516 -0.4375 0.4375 0.690539 -0.5 0.4375 0.747434 -0.5625 0.4375 0.690539 -0.625 0.4375 0.528516 -0.6875 0.4375 0.286031 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.286031 -0.875 0.4375 -0.528516 -0.9375 0.4375 -0.690539 -1 0.4375 -0.747434 - -0 0.5 -0.809017 -0.0625 0.5 -0.747434 -0.125 0.5 -0.572061 -0.1875 0.5 -0.309597 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.309597 -0.375 0.5 0.572061 -0.4375 0.5 0.747434 -0.5 0.5 0.809017 -0.5625 0.5 0.747434 -0.625 0.5 0.572061 -0.6875 0.5 0.309597 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.309597 -0.875 0.5 -0.572061 -0.9375 0.5 -0.747434 -1 0.5 -0.809017 - -0 0.5625 -0.747434 -0.0625 0.5625 -0.690539 -0.125 0.5625 -0.528516 -0.1875 0.5625 -0.286031 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.286031 -0.375 0.5625 0.528516 -0.4375 0.5625 0.690539 -0.5 0.5625 0.747434 -0.5625 0.5625 0.690539 -0.625 0.5625 0.528516 -0.6875 0.5625 0.286031 -0.75 0.5625 1.04083e-16 -0.8125 0.5625 -0.286031 -0.875 0.5625 -0.528516 -0.9375 0.5625 -0.690539 -1 0.5625 -0.747434 - -0 0.625 -0.572061 -0.0625 0.625 -0.528516 -0.125 0.625 -0.404508 -0.1875 0.625 -0.218918 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.218918 -0.375 0.625 0.404508 -0.4375 0.625 0.528516 -0.5 0.625 0.572061 -0.5625 0.625 0.528516 -0.625 0.625 0.404508 -0.6875 0.625 0.218918 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.218918 -0.875 0.625 -0.404508 -0.9375 0.625 -0.528516 -1 0.625 -0.572061 - -0 0.6875 -0.309597 -0.0625 0.6875 -0.286031 -0.125 0.6875 -0.218918 -0.1875 0.6875 -0.118478 -0.25 0.6875 -3.29597e-17 -0.3125 0.6875 0.118478 -0.375 0.6875 0.218918 -0.4375 0.6875 0.286031 -0.5 0.6875 0.309597 -0.5625 0.6875 0.286031 -0.625 0.6875 0.218918 -0.6875 0.6875 0.118478 -0.75 0.6875 5.0307e-17 -0.8125 0.6875 -0.118478 -0.875 0.6875 -0.218918 -0.9375 0.6875 -0.286031 -1 0.6875 -0.309597 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -1.66533e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.309597 -0.0625 0.8125 0.286031 -0.125 0.8125 0.218918 -0.1875 0.8125 0.118478 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.118478 -0.375 0.8125 -0.218918 -0.4375 0.8125 -0.286031 -0.5 0.8125 -0.309597 -0.5625 0.8125 -0.286031 -0.625 0.8125 -0.218918 -0.6875 0.8125 -0.118478 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.118478 -0.875 0.8125 0.218918 -0.9375 0.8125 0.286031 -1 0.8125 0.309597 - -0 0.875 0.572061 -0.0625 0.875 0.528516 -0.125 0.875 0.404508 -0.1875 0.875 0.218918 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.218918 -0.375 0.875 -0.404508 -0.4375 0.875 -0.528516 -0.5 0.875 -0.572061 -0.5625 0.875 -0.528516 -0.625 0.875 -0.404508 -0.6875 0.875 -0.218918 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.218918 -0.875 0.875 0.404508 -0.9375 0.875 0.528516 -1 0.875 0.572061 - -0 0.9375 0.747434 -0.0625 0.9375 0.690539 -0.125 0.9375 0.528516 -0.1875 0.9375 0.286031 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.286031 -0.375 0.9375 -0.528516 -0.4375 0.9375 -0.690539 -0.5 0.9375 -0.747434 -0.5625 0.9375 -0.690539 -0.625 0.9375 -0.528516 -0.6875 0.9375 -0.286031 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.286031 -0.875 0.9375 0.528516 -0.9375 0.9375 0.690539 -1 0.9375 0.747434 - -0 1 0.809017 -0.0625 1 0.747434 -0.125 1 0.572061 -0.1875 1 0.309597 -0.25 1 5.55112e-17 -0.3125 1 -0.309597 -0.375 1 -0.572061 -0.4375 1 -0.747434 -0.5 1 -0.809017 -0.5625 1 -0.747434 -0.625 1 -0.572061 -0.6875 1 -0.309597 -0.75 1 -1.66533e-16 -0.8125 1 0.309597 -0.875 1 0.572061 -0.9375 1 0.747434 -1 1 0.809017 - - -0 0 0.790155 -0.0625 0 0.730008 -0.125 0 0.558724 -0.1875 0 0.302379 -0.25 0 5.55112e-17 -0.3125 0 -0.302379 -0.375 0 -0.558724 -0.4375 0 -0.730008 -0.5 0 -0.790155 -0.5625 0 -0.730008 -0.625 0 -0.558724 -0.6875 0 -0.302379 -0.75 0 -1.66533e-16 -0.8125 0 0.302379 -0.875 0 0.558724 -0.9375 0 0.730008 -1 0 0.790155 - -0 0.0625 0.730008 -0.0625 0.0625 0.674439 -0.125 0.0625 0.516194 -0.1875 0.0625 0.279362 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.279362 -0.375 0.0625 -0.516194 -0.4375 0.0625 -0.674439 -0.5 0.0625 -0.730008 -0.5625 0.0625 -0.674439 -0.625 0.0625 -0.516194 -0.6875 0.0625 -0.279362 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.279362 -0.875 0.0625 0.516194 -0.9375 0.0625 0.674439 -1 0.0625 0.730008 - -0 0.125 0.558724 -0.0625 0.125 0.516194 -0.125 0.125 0.395078 -0.1875 0.125 0.213814 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.213814 -0.375 0.125 -0.395078 -0.4375 0.125 -0.516194 -0.5 0.125 -0.558724 -0.5625 0.125 -0.516194 -0.625 0.125 -0.395078 -0.6875 0.125 -0.213814 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.213814 -0.875 0.125 0.395078 -0.9375 0.125 0.516194 -1 0.125 0.558724 - -0 0.1875 0.302379 -0.0625 0.1875 0.279362 -0.125 0.1875 0.213814 -0.1875 0.1875 0.115716 -0.25 0.1875 2.25514e-17 -0.3125 0.1875 -0.115716 -0.375 0.1875 -0.213814 -0.4375 0.1875 -0.279362 -0.5 0.1875 -0.302379 -0.5625 0.1875 -0.279362 -0.625 0.1875 -0.213814 -0.6875 0.1875 -0.115716 -0.75 0.1875 -6.07153e-17 -0.8125 0.1875 0.115716 -0.875 0.1875 0.213814 -0.9375 0.1875 0.279362 -1 0.1875 0.302379 - -0 0.25 5.55112e-17 -0.0625 0.25 0 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -1.11022e-16 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -1.11022e-16 -0.625 0.25 0 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 0 -0.9375 0.25 5.55112e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.302379 -0.0625 0.3125 -0.279362 -0.125 0.3125 -0.213814 -0.1875 0.3125 -0.115716 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.115716 -0.375 0.3125 0.213814 -0.4375 0.3125 0.279362 -0.5 0.3125 0.302379 -0.5625 0.3125 0.279362 -0.625 0.3125 0.213814 -0.6875 0.3125 0.115716 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.115716 -0.875 0.3125 -0.213814 -0.9375 0.3125 -0.279362 -1 0.3125 -0.302379 - -0 0.375 -0.558724 -0.0625 0.375 -0.516194 -0.125 0.375 -0.395078 -0.1875 0.375 -0.213814 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.213814 -0.375 0.375 0.395078 -0.4375 0.375 0.516194 -0.5 0.375 0.558724 -0.5625 0.375 0.516194 -0.625 0.375 0.395078 -0.6875 0.375 0.213814 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.213814 -0.875 0.375 -0.395078 -0.9375 0.375 -0.516194 -1 0.375 -0.558724 - -0 0.4375 -0.730008 -0.0625 0.4375 -0.674439 -0.125 0.4375 -0.516194 -0.1875 0.4375 -0.279362 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.279362 -0.375 0.4375 0.516194 -0.4375 0.4375 0.674439 -0.5 0.4375 0.730008 -0.5625 0.4375 0.674439 -0.625 0.4375 0.516194 -0.6875 0.4375 0.279362 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.279362 -0.875 0.4375 -0.516194 -0.9375 0.4375 -0.674439 -1 0.4375 -0.730008 - -0 0.5 -0.790155 -0.0625 0.5 -0.730008 -0.125 0.5 -0.558724 -0.1875 0.5 -0.302379 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.302379 -0.375 0.5 0.558724 -0.4375 0.5 0.730008 -0.5 0.5 0.790155 -0.5625 0.5 0.730008 -0.625 0.5 0.558724 -0.6875 0.5 0.302379 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.302379 -0.875 0.5 -0.558724 -0.9375 0.5 -0.730008 -1 0.5 -0.790155 - -0 0.5625 -0.730008 -0.0625 0.5625 -0.674439 -0.125 0.5625 -0.516194 -0.1875 0.5625 -0.279362 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.279362 -0.375 0.5625 0.516194 -0.4375 0.5625 0.674439 -0.5 0.5625 0.730008 -0.5625 0.5625 0.674439 -0.625 0.5625 0.516194 -0.6875 0.5625 0.279362 -0.75 0.5625 1.04083e-16 -0.8125 0.5625 -0.279362 -0.875 0.5625 -0.516194 -0.9375 0.5625 -0.674439 -1 0.5625 -0.730008 - -0 0.625 -0.558724 -0.0625 0.625 -0.516194 -0.125 0.625 -0.395078 -0.1875 0.625 -0.213814 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.213814 -0.375 0.625 0.395078 -0.4375 0.625 0.516194 -0.5 0.625 0.558724 -0.5625 0.625 0.516194 -0.625 0.625 0.395078 -0.6875 0.625 0.213814 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.213814 -0.875 0.625 -0.395078 -0.9375 0.625 -0.516194 -1 0.625 -0.558724 - -0 0.6875 -0.302379 -0.0625 0.6875 -0.279362 -0.125 0.6875 -0.213814 -0.1875 0.6875 -0.115716 -0.25 0.6875 -3.29597e-17 -0.3125 0.6875 0.115716 -0.375 0.6875 0.213814 -0.4375 0.6875 0.279362 -0.5 0.6875 0.302379 -0.5625 0.6875 0.279362 -0.625 0.6875 0.213814 -0.6875 0.6875 0.115716 -0.75 0.6875 5.0307e-17 -0.8125 0.6875 -0.115716 -0.875 0.6875 -0.213814 -0.9375 0.6875 -0.279362 -1 0.6875 -0.302379 - -0 0.75 -1.66533e-16 -0.0625 0.75 -2.22045e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.66533e-16 -0.9375 0.75 -1.66533e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.302379 -0.0625 0.8125 0.279362 -0.125 0.8125 0.213814 -0.1875 0.8125 0.115716 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.115716 -0.375 0.8125 -0.213814 -0.4375 0.8125 -0.279362 -0.5 0.8125 -0.302379 -0.5625 0.8125 -0.279362 -0.625 0.8125 -0.213814 -0.6875 0.8125 -0.115716 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.115716 -0.875 0.8125 0.213814 -0.9375 0.8125 0.279362 -1 0.8125 0.302379 - -0 0.875 0.558724 -0.0625 0.875 0.516194 -0.125 0.875 0.395078 -0.1875 0.875 0.213814 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.213814 -0.375 0.875 -0.395078 -0.4375 0.875 -0.516194 -0.5 0.875 -0.558724 -0.5625 0.875 -0.516194 -0.625 0.875 -0.395078 -0.6875 0.875 -0.213814 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.213814 -0.875 0.875 0.395078 -0.9375 0.875 0.516194 -1 0.875 0.558724 - -0 0.9375 0.730008 -0.0625 0.9375 0.674439 -0.125 0.9375 0.516194 -0.1875 0.9375 0.279362 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.279362 -0.375 0.9375 -0.516194 -0.4375 0.9375 -0.674439 -0.5 0.9375 -0.730008 -0.5625 0.9375 -0.674439 -0.625 0.9375 -0.516194 -0.6875 0.9375 -0.279362 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.279362 -0.875 0.9375 0.516194 -0.9375 0.9375 0.674439 -1 0.9375 0.730008 - -0 1 0.790155 -0.0625 1 0.730008 -0.125 1 0.558724 -0.1875 1 0.302379 -0.25 1 5.55112e-17 -0.3125 1 -0.302379 -0.375 1 -0.558724 -0.4375 1 -0.730008 -0.5 1 -0.790155 -0.5625 1 -0.730008 -0.625 1 -0.558724 -0.6875 1 -0.302379 -0.75 1 -1.66533e-16 -0.8125 1 0.302379 -0.875 1 0.558724 -0.9375 1 0.730008 -1 1 0.790155 - - -0 0 0.770513 -0.0625 0 0.711861 -0.125 0 0.544835 -0.1875 0 0.294863 -0.25 0 5.55112e-17 -0.3125 0 -0.294863 -0.375 0 -0.544835 -0.4375 0 -0.711861 -0.5 0 -0.770513 -0.5625 0 -0.711861 -0.625 0 -0.544835 -0.6875 0 -0.294863 -0.75 0 -1.66533e-16 -0.8125 0 0.294863 -0.875 0 0.544835 -0.9375 0 0.711861 -1 0 0.770513 - -0 0.0625 0.711861 -0.0625 0.0625 0.657674 -0.125 0.0625 0.503362 -0.1875 0.0625 0.272418 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.272418 -0.375 0.0625 -0.503362 -0.4375 0.0625 -0.657674 -0.5 0.0625 -0.711861 -0.5625 0.0625 -0.657674 -0.625 0.0625 -0.503362 -0.6875 0.0625 -0.272418 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.272418 -0.875 0.0625 0.503362 -0.9375 0.0625 0.657674 -1 0.0625 0.711861 - -0 0.125 0.544835 -0.0625 0.125 0.503362 -0.125 0.125 0.385257 -0.1875 0.125 0.208499 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.208499 -0.375 0.125 -0.385257 -0.4375 0.125 -0.503362 -0.5 0.125 -0.544835 -0.5625 0.125 -0.503362 -0.625 0.125 -0.385257 -0.6875 0.125 -0.208499 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.208499 -0.875 0.125 0.385257 -0.9375 0.125 0.503362 -1 0.125 0.544835 - -0 0.1875 0.294863 -0.0625 0.1875 0.272418 -0.125 0.1875 0.208499 -0.1875 0.1875 0.112839 -0.25 0.1875 2.25514e-17 -0.3125 0.1875 -0.112839 -0.375 0.1875 -0.208499 -0.4375 0.1875 -0.272418 -0.5 0.1875 -0.294863 -0.5625 0.1875 -0.272418 -0.625 0.1875 -0.208499 -0.6875 0.1875 -0.112839 -0.75 0.1875 -6.07153e-17 -0.8125 0.1875 0.112839 -0.875 0.1875 0.208499 -0.9375 0.1875 0.272418 -1 0.1875 0.294863 - -0 0.25 5.55112e-17 -0.0625 0.25 1.11022e-16 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 0 -0.9375 0.25 0 -1 0.25 5.55112e-17 - -0 0.3125 -0.294863 -0.0625 0.3125 -0.272418 -0.125 0.3125 -0.208499 -0.1875 0.3125 -0.112839 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.112839 -0.375 0.3125 0.208499 -0.4375 0.3125 0.272418 -0.5 0.3125 0.294863 -0.5625 0.3125 0.272418 -0.625 0.3125 0.208499 -0.6875 0.3125 0.112839 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.112839 -0.875 0.3125 -0.208499 -0.9375 0.3125 -0.272418 -1 0.3125 -0.294863 - -0 0.375 -0.544835 -0.0625 0.375 -0.503362 -0.125 0.375 -0.385257 -0.1875 0.375 -0.208499 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.208499 -0.375 0.375 0.385257 -0.4375 0.375 0.503362 -0.5 0.375 0.544835 -0.5625 0.375 0.503362 -0.625 0.375 0.385257 -0.6875 0.375 0.208499 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.208499 -0.875 0.375 -0.385257 -0.9375 0.375 -0.503362 -1 0.375 -0.544835 - -0 0.4375 -0.711861 -0.0625 0.4375 -0.657674 -0.125 0.4375 -0.503362 -0.1875 0.4375 -0.272418 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.272418 -0.375 0.4375 0.503362 -0.4375 0.4375 0.657674 -0.5 0.4375 0.711861 -0.5625 0.4375 0.657674 -0.625 0.4375 0.503362 -0.6875 0.4375 0.272418 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.272418 -0.875 0.4375 -0.503362 -0.9375 0.4375 -0.657674 -1 0.4375 -0.711861 - -0 0.5 -0.770513 -0.0625 0.5 -0.711861 -0.125 0.5 -0.544835 -0.1875 0.5 -0.294863 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.294863 -0.375 0.5 0.544835 -0.4375 0.5 0.711861 -0.5 0.5 0.770513 -0.5625 0.5 0.711861 -0.625 0.5 0.544835 -0.6875 0.5 0.294863 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.294863 -0.875 0.5 -0.544835 -0.9375 0.5 -0.711861 -1 0.5 -0.770513 - -0 0.5625 -0.711861 -0.0625 0.5625 -0.657674 -0.125 0.5625 -0.503362 -0.1875 0.5625 -0.272418 -0.25 0.5625 -6.245e-17 -0.3125 0.5625 0.272418 -0.375 0.5625 0.503362 -0.4375 0.5625 0.657674 -0.5 0.5625 0.711861 -0.5625 0.5625 0.657674 -0.625 0.5625 0.503362 -0.6875 0.5625 0.272418 -0.75 0.5625 1.04083e-16 -0.8125 0.5625 -0.272418 -0.875 0.5625 -0.503362 -0.9375 0.5625 -0.657674 -1 0.5625 -0.711861 - -0 0.625 -0.544835 -0.0625 0.625 -0.503362 -0.125 0.625 -0.385257 -0.1875 0.625 -0.208499 -0.25 0.625 -6.93889e-17 -0.3125 0.625 0.208499 -0.375 0.625 0.385257 -0.4375 0.625 0.503362 -0.5 0.625 0.544835 -0.5625 0.625 0.503362 -0.625 0.625 0.385257 -0.6875 0.625 0.208499 -0.75 0.625 9.71445e-17 -0.8125 0.625 -0.208499 -0.875 0.625 -0.385257 -0.9375 0.625 -0.503362 -1 0.625 -0.544835 - -0 0.6875 -0.294863 -0.0625 0.6875 -0.272418 -0.125 0.6875 -0.208499 -0.1875 0.6875 -0.112839 -0.25 0.6875 -3.46945e-17 -0.3125 0.6875 0.112839 -0.375 0.6875 0.208499 -0.4375 0.6875 0.272418 -0.5 0.6875 0.294863 -0.5625 0.6875 0.272418 -0.625 0.6875 0.208499 -0.6875 0.6875 0.112839 -0.75 0.6875 4.85723e-17 -0.8125 0.6875 -0.112839 -0.875 0.6875 -0.208499 -0.9375 0.6875 -0.272418 -1 0.6875 -0.294863 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 2.22045e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.66533e-16 -0.9375 0.75 -2.22045e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.294863 -0.0625 0.8125 0.272418 -0.125 0.8125 0.208499 -0.1875 0.8125 0.112839 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.112839 -0.375 0.8125 -0.208499 -0.4375 0.8125 -0.272418 -0.5 0.8125 -0.294863 -0.5625 0.8125 -0.272418 -0.625 0.8125 -0.208499 -0.6875 0.8125 -0.112839 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.112839 -0.875 0.8125 0.208499 -0.9375 0.8125 0.272418 -1 0.8125 0.294863 - -0 0.875 0.544835 -0.0625 0.875 0.503362 -0.125 0.875 0.385257 -0.1875 0.875 0.208499 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.208499 -0.375 0.875 -0.385257 -0.4375 0.875 -0.503362 -0.5 0.875 -0.544835 -0.5625 0.875 -0.503362 -0.625 0.875 -0.385257 -0.6875 0.875 -0.208499 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.208499 -0.875 0.875 0.385257 -0.9375 0.875 0.503362 -1 0.875 0.544835 - -0 0.9375 0.711861 -0.0625 0.9375 0.657674 -0.125 0.9375 0.503362 -0.1875 0.9375 0.272418 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.272418 -0.375 0.9375 -0.503362 -0.4375 0.9375 -0.657674 -0.5 0.9375 -0.711861 -0.5625 0.9375 -0.657674 -0.625 0.9375 -0.503362 -0.6875 0.9375 -0.272418 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.272418 -0.875 0.9375 0.503362 -0.9375 0.9375 0.657674 -1 0.9375 0.711861 - -0 1 0.770513 -0.0625 1 0.711861 -0.125 1 0.544835 -0.1875 1 0.294863 -0.25 1 5.55112e-17 -0.3125 1 -0.294863 -0.375 1 -0.544835 -0.4375 1 -0.711861 -0.5 1 -0.770513 -0.5625 1 -0.711861 -0.625 1 -0.544835 -0.6875 1 -0.294863 -0.75 1 -1.66533e-16 -0.8125 1 0.294863 -0.875 1 0.544835 -0.9375 1 0.711861 -1 1 0.770513 - - -0 0 0.750111 -0.0625 0 0.693012 -0.125 0 0.530409 -0.1875 0 0.287055 -0.25 0 5.55112e-17 -0.3125 0 -0.287055 -0.375 0 -0.530409 -0.4375 0 -0.693012 -0.5 0 -0.750111 -0.5625 0 -0.693012 -0.625 0 -0.530409 -0.6875 0 -0.287055 -0.75 0 -1.11022e-16 -0.8125 0 0.287055 -0.875 0 0.530409 -0.9375 0 0.693012 -1 0 0.750111 - -0 0.0625 0.693012 -0.0625 0.0625 0.64026 -0.125 0.0625 0.490034 -0.1875 0.0625 0.265204 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.265204 -0.375 0.0625 -0.490034 -0.4375 0.0625 -0.64026 -0.5 0.0625 -0.693012 -0.5625 0.0625 -0.64026 -0.625 0.0625 -0.490034 -0.6875 0.0625 -0.265204 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.265204 -0.875 0.0625 0.490034 -0.9375 0.0625 0.64026 -1 0.0625 0.693012 - -0 0.125 0.530409 -0.0625 0.125 0.490034 -0.125 0.125 0.375056 -0.1875 0.125 0.202979 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.202979 -0.375 0.125 -0.375056 -0.4375 0.125 -0.490034 -0.5 0.125 -0.530409 -0.5625 0.125 -0.490034 -0.625 0.125 -0.375056 -0.6875 0.125 -0.202979 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.202979 -0.875 0.125 0.375056 -0.9375 0.125 0.490034 -1 0.125 0.530409 - -0 0.1875 0.287055 -0.0625 0.1875 0.265204 -0.125 0.1875 0.202979 -0.1875 0.1875 0.109851 -0.25 0.1875 2.25514e-17 -0.3125 0.1875 -0.109851 -0.375 0.1875 -0.202979 -0.4375 0.1875 -0.265204 -0.5 0.1875 -0.287055 -0.5625 0.1875 -0.265204 -0.625 0.1875 -0.202979 -0.6875 0.1875 -0.109851 -0.75 0.1875 -6.07153e-17 -0.8125 0.1875 0.109851 -0.875 0.1875 0.202979 -0.9375 0.1875 0.265204 -1 0.1875 0.287055 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -5.55112e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 5.55112e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.287055 -0.0625 0.3125 -0.265204 -0.125 0.3125 -0.202979 -0.1875 0.3125 -0.109851 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.109851 -0.375 0.3125 0.202979 -0.4375 0.3125 0.265204 -0.5 0.3125 0.287055 -0.5625 0.3125 0.265204 -0.625 0.3125 0.202979 -0.6875 0.3125 0.109851 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.109851 -0.875 0.3125 -0.202979 -0.9375 0.3125 -0.265204 -1 0.3125 -0.287055 - -0 0.375 -0.530409 -0.0625 0.375 -0.490034 -0.125 0.375 -0.375056 -0.1875 0.375 -0.202979 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.202979 -0.375 0.375 0.375056 -0.4375 0.375 0.490034 -0.5 0.375 0.530409 -0.5625 0.375 0.490034 -0.625 0.375 0.375056 -0.6875 0.375 0.202979 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.202979 -0.875 0.375 -0.375056 -0.9375 0.375 -0.490034 -1 0.375 -0.530409 - -0 0.4375 -0.693012 -0.0625 0.4375 -0.64026 -0.125 0.4375 -0.490034 -0.1875 0.4375 -0.265204 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.265204 -0.375 0.4375 0.490034 -0.4375 0.4375 0.64026 -0.5 0.4375 0.693012 -0.5625 0.4375 0.64026 -0.625 0.4375 0.490034 -0.6875 0.4375 0.265204 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.265204 -0.875 0.4375 -0.490034 -0.9375 0.4375 -0.64026 -1 0.4375 -0.693012 - -0 0.5 -0.750111 -0.0625 0.5 -0.693012 -0.125 0.5 -0.530409 -0.1875 0.5 -0.287055 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.287055 -0.375 0.5 0.530409 -0.4375 0.5 0.693012 -0.5 0.5 0.750111 -0.5625 0.5 0.693012 -0.625 0.5 0.530409 -0.6875 0.5 0.287055 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.287055 -0.875 0.5 -0.530409 -0.9375 0.5 -0.693012 -1 0.5 -0.750111 - -0 0.5625 -0.693012 -0.0625 0.5625 -0.64026 -0.125 0.5625 -0.490034 -0.1875 0.5625 -0.265204 -0.25 0.5625 -5.55112e-17 -0.3125 0.5625 0.265204 -0.375 0.5625 0.490034 -0.4375 0.5625 0.64026 -0.5 0.5625 0.693012 -0.5625 0.5625 0.64026 -0.625 0.5625 0.490034 -0.6875 0.5625 0.265204 -0.75 0.5625 1.11022e-16 -0.8125 0.5625 -0.265204 -0.875 0.5625 -0.490034 -0.9375 0.5625 -0.64026 -1 0.5625 -0.693012 - -0 0.625 -0.530409 -0.0625 0.625 -0.490034 -0.125 0.625 -0.375056 -0.1875 0.625 -0.202979 -0.25 0.625 -5.55112e-17 -0.3125 0.625 0.202979 -0.375 0.625 0.375056 -0.4375 0.625 0.490034 -0.5 0.625 0.530409 -0.5625 0.625 0.490034 -0.625 0.625 0.375056 -0.6875 0.625 0.202979 -0.75 0.625 1.11022e-16 -0.8125 0.625 -0.202979 -0.875 0.625 -0.375056 -0.9375 0.625 -0.490034 -1 0.625 -0.530409 - -0 0.6875 -0.287055 -0.0625 0.6875 -0.265204 -0.125 0.6875 -0.202979 -0.1875 0.6875 -0.109851 -0.25 0.6875 -2.77556e-17 -0.3125 0.6875 0.109851 -0.375 0.6875 0.202979 -0.4375 0.6875 0.265204 -0.5 0.6875 0.287055 -0.5625 0.6875 0.265204 -0.625 0.6875 0.202979 -0.6875 0.6875 0.109851 -0.75 0.6875 5.55112e-17 -0.8125 0.6875 -0.109851 -0.875 0.6875 -0.202979 -0.9375 0.6875 -0.265204 -1 0.6875 -0.287055 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 2.77556e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -1.11022e-16 - -0 0.8125 0.287055 -0.0625 0.8125 0.265204 -0.125 0.8125 0.202979 -0.1875 0.8125 0.109851 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.109851 -0.375 0.8125 -0.202979 -0.4375 0.8125 -0.265204 -0.5 0.8125 -0.287055 -0.5625 0.8125 -0.265204 -0.625 0.8125 -0.202979 -0.6875 0.8125 -0.109851 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.109851 -0.875 0.8125 0.202979 -0.9375 0.8125 0.265204 -1 0.8125 0.287055 - -0 0.875 0.530409 -0.0625 0.875 0.490034 -0.125 0.875 0.375056 -0.1875 0.875 0.202979 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.202979 -0.375 0.875 -0.375056 -0.4375 0.875 -0.490034 -0.5 0.875 -0.530409 -0.5625 0.875 -0.490034 -0.625 0.875 -0.375056 -0.6875 0.875 -0.202979 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.202979 -0.875 0.875 0.375056 -0.9375 0.875 0.490034 -1 0.875 0.530409 - -0 0.9375 0.693012 -0.0625 0.9375 0.64026 -0.125 0.9375 0.490034 -0.1875 0.9375 0.265204 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.265204 -0.375 0.9375 -0.490034 -0.4375 0.9375 -0.64026 -0.5 0.9375 -0.693012 -0.5625 0.9375 -0.64026 -0.625 0.9375 -0.490034 -0.6875 0.9375 -0.265204 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.265204 -0.875 0.9375 0.490034 -0.9375 0.9375 0.64026 -1 0.9375 0.693012 - -0 1 0.750111 -0.0625 1 0.693012 -0.125 1 0.530409 -0.1875 1 0.287055 -0.25 1 5.55112e-17 -0.3125 1 -0.287055 -0.375 1 -0.530409 -0.4375 1 -0.693012 -0.5 1 -0.750111 -0.5625 1 -0.693012 -0.625 1 -0.530409 -0.6875 1 -0.287055 -0.75 1 -1.11022e-16 -0.8125 1 0.287055 -0.875 1 0.530409 -0.9375 1 0.693012 -1 1 0.750111 - - -0 0 0.728969 -0.0625 0 0.673479 -0.125 0 0.515459 -0.1875 0 0.278964 -0.25 0 5.55112e-17 -0.3125 0 -0.278964 -0.375 0 -0.515459 -0.4375 0 -0.673479 -0.5 0 -0.728969 -0.5625 0 -0.673479 -0.625 0 -0.515459 -0.6875 0 -0.278964 -0.75 0 -1.11022e-16 -0.8125 0 0.278964 -0.875 0 0.515459 -0.9375 0 0.673479 -1 0 0.728969 - -0 0.0625 0.673479 -0.0625 0.0625 0.622214 -0.125 0.0625 0.476222 -0.1875 0.0625 0.257729 -0.25 0.0625 4.85723e-17 -0.3125 0.0625 -0.257729 -0.375 0.0625 -0.476222 -0.4375 0.0625 -0.622214 -0.5 0.0625 -0.673479 -0.5625 0.0625 -0.622214 -0.625 0.0625 -0.476222 -0.6875 0.0625 -0.257729 -0.75 0.0625 -1.17961e-16 -0.8125 0.0625 0.257729 -0.875 0.0625 0.476222 -0.9375 0.0625 0.622214 -1 0.0625 0.673479 - -0 0.125 0.515459 -0.0625 0.125 0.476222 -0.125 0.125 0.364484 -0.1875 0.125 0.197257 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.197257 -0.375 0.125 -0.364484 -0.4375 0.125 -0.476222 -0.5 0.125 -0.515459 -0.5625 0.125 -0.476222 -0.625 0.125 -0.364484 -0.6875 0.125 -0.197257 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.197257 -0.875 0.125 0.364484 -0.9375 0.125 0.476222 -1 0.125 0.515459 - -0 0.1875 0.278964 -0.0625 0.1875 0.257729 -0.125 0.1875 0.197257 -0.1875 0.1875 0.106755 -0.25 0.1875 2.08167e-17 -0.3125 0.1875 -0.106755 -0.375 0.1875 -0.197257 -0.4375 0.1875 -0.257729 -0.5 0.1875 -0.278964 -0.5625 0.1875 -0.257729 -0.625 0.1875 -0.197257 -0.6875 0.1875 -0.106755 -0.75 0.1875 -6.245e-17 -0.8125 0.1875 0.106755 -0.875 0.1875 0.197257 -0.9375 0.1875 0.257729 -1 0.1875 0.278964 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 0 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.278964 -0.0625 0.3125 -0.257729 -0.125 0.3125 -0.197257 -0.1875 0.3125 -0.106755 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.106755 -0.375 0.3125 0.197257 -0.4375 0.3125 0.257729 -0.5 0.3125 0.278964 -0.5625 0.3125 0.257729 -0.625 0.3125 0.197257 -0.6875 0.3125 0.106755 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.106755 -0.875 0.3125 -0.197257 -0.9375 0.3125 -0.257729 -1 0.3125 -0.278964 - -0 0.375 -0.515459 -0.0625 0.375 -0.476222 -0.125 0.375 -0.364484 -0.1875 0.375 -0.197257 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.197257 -0.375 0.375 0.364484 -0.4375 0.375 0.476222 -0.5 0.375 0.515459 -0.5625 0.375 0.476222 -0.625 0.375 0.364484 -0.6875 0.375 0.197257 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.197257 -0.875 0.375 -0.364484 -0.9375 0.375 -0.476222 -1 0.375 -0.515459 - -0 0.4375 -0.673479 -0.0625 0.4375 -0.622214 -0.125 0.4375 -0.476222 -0.1875 0.4375 -0.257729 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.257729 -0.375 0.4375 0.476222 -0.4375 0.4375 0.622214 -0.5 0.4375 0.673479 -0.5625 0.4375 0.622214 -0.625 0.4375 0.476222 -0.6875 0.4375 0.257729 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.257729 -0.875 0.4375 -0.476222 -0.9375 0.4375 -0.622214 -1 0.4375 -0.673479 - -0 0.5 -0.728969 -0.0625 0.5 -0.673479 -0.125 0.5 -0.515459 -0.1875 0.5 -0.278964 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.278964 -0.375 0.5 0.515459 -0.4375 0.5 0.673479 -0.5 0.5 0.728969 -0.5625 0.5 0.673479 -0.625 0.5 0.515459 -0.6875 0.5 0.278964 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.278964 -0.875 0.5 -0.515459 -0.9375 0.5 -0.673479 -1 0.5 -0.728969 - -0 0.5625 -0.673479 -0.0625 0.5625 -0.622214 -0.125 0.5625 -0.476222 -0.1875 0.5625 -0.257729 -0.25 0.5625 -5.55112e-17 -0.3125 0.5625 0.257729 -0.375 0.5625 0.476222 -0.4375 0.5625 0.622214 -0.5 0.5625 0.673479 -0.5625 0.5625 0.622214 -0.625 0.5625 0.476222 -0.6875 0.5625 0.257729 -0.75 0.5625 1.11022e-16 -0.8125 0.5625 -0.257729 -0.875 0.5625 -0.476222 -0.9375 0.5625 -0.622214 -1 0.5625 -0.673479 - -0 0.625 -0.515459 -0.0625 0.625 -0.476222 -0.125 0.625 -0.364484 -0.1875 0.625 -0.197257 -0.25 0.625 -5.55112e-17 -0.3125 0.625 0.197257 -0.375 0.625 0.364484 -0.4375 0.625 0.476222 -0.5 0.625 0.515459 -0.5625 0.625 0.476222 -0.625 0.625 0.364484 -0.6875 0.625 0.197257 -0.75 0.625 1.11022e-16 -0.8125 0.625 -0.197257 -0.875 0.625 -0.364484 -0.9375 0.625 -0.476222 -1 0.625 -0.515459 - -0 0.6875 -0.278964 -0.0625 0.6875 -0.257729 -0.125 0.6875 -0.197257 -0.1875 0.6875 -0.106755 -0.25 0.6875 -2.94903e-17 -0.3125 0.6875 0.106755 -0.375 0.6875 0.197257 -0.4375 0.6875 0.257729 -0.5 0.6875 0.278964 -0.5625 0.6875 0.257729 -0.625 0.6875 0.197257 -0.6875 0.6875 0.106755 -0.75 0.6875 5.37764e-17 -0.8125 0.6875 -0.106755 -0.875 0.6875 -0.197257 -0.9375 0.6875 -0.257729 -1 0.6875 -0.278964 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.66533e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -1.11022e-16 - -0 0.8125 0.278964 -0.0625 0.8125 0.257729 -0.125 0.8125 0.197257 -0.1875 0.8125 0.106755 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.106755 -0.375 0.8125 -0.197257 -0.4375 0.8125 -0.257729 -0.5 0.8125 -0.278964 -0.5625 0.8125 -0.257729 -0.625 0.8125 -0.197257 -0.6875 0.8125 -0.106755 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.106755 -0.875 0.8125 0.197257 -0.9375 0.8125 0.257729 -1 0.8125 0.278964 - -0 0.875 0.515459 -0.0625 0.875 0.476222 -0.125 0.875 0.364484 -0.1875 0.875 0.197257 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.197257 -0.375 0.875 -0.364484 -0.4375 0.875 -0.476222 -0.5 0.875 -0.515459 -0.5625 0.875 -0.476222 -0.625 0.875 -0.364484 -0.6875 0.875 -0.197257 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.197257 -0.875 0.875 0.364484 -0.9375 0.875 0.476222 -1 0.875 0.515459 - -0 0.9375 0.673479 -0.0625 0.9375 0.622214 -0.125 0.9375 0.476222 -0.1875 0.9375 0.257729 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.257729 -0.375 0.9375 -0.476222 -0.4375 0.9375 -0.622214 -0.5 0.9375 -0.673479 -0.5625 0.9375 -0.622214 -0.625 0.9375 -0.476222 -0.6875 0.9375 -0.257729 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.257729 -0.875 0.9375 0.476222 -0.9375 0.9375 0.622214 -1 0.9375 0.673479 - -0 1 0.728969 -0.0625 1 0.673479 -0.125 1 0.515459 -0.1875 1 0.278964 -0.25 1 5.55112e-17 -0.3125 1 -0.278964 -0.375 1 -0.515459 -0.4375 1 -0.673479 -0.5 1 -0.728969 -0.5625 1 -0.673479 -0.625 1 -0.515459 -0.6875 1 -0.278964 -0.75 1 -1.11022e-16 -0.8125 1 0.278964 -0.875 1 0.515459 -0.9375 1 0.673479 -1 1 0.728969 - - -0 0 0.707107 -0.0625 0 0.653281 -0.125 0 0.5 -0.1875 0 0.270598 -0.25 0 1.11022e-16 -0.3125 0 -0.270598 -0.375 0 -0.5 -0.4375 0 -0.653281 -0.5 0 -0.707107 -0.5625 0 -0.653281 -0.625 0 -0.5 -0.6875 0 -0.270598 -0.75 0 -5.55112e-17 -0.8125 0 0.270598 -0.875 0 0.5 -0.9375 0 0.653281 -1 0 0.707107 - -0 0.0625 0.653281 -0.0625 0.0625 0.603553 -0.125 0.0625 0.46194 -0.1875 0.0625 0.25 -0.25 0.0625 1.04083e-16 -0.3125 0.0625 -0.25 -0.375 0.0625 -0.46194 -0.4375 0.0625 -0.603553 -0.5 0.0625 -0.653281 -0.5625 0.0625 -0.603553 -0.625 0.0625 -0.46194 -0.6875 0.0625 -0.25 -0.75 0.0625 -6.245e-17 -0.8125 0.0625 0.25 -0.875 0.0625 0.46194 -0.9375 0.0625 0.603553 -1 0.0625 0.653281 - -0 0.125 0.5 -0.0625 0.125 0.46194 -0.125 0.125 0.353553 -0.1875 0.125 0.191342 -0.25 0.125 9.71445e-17 -0.3125 0.125 -0.191342 -0.375 0.125 -0.353553 -0.4375 0.125 -0.46194 -0.5 0.125 -0.5 -0.5625 0.125 -0.46194 -0.625 0.125 -0.353553 -0.6875 0.125 -0.191342 -0.75 0.125 -4.16334e-17 -0.8125 0.125 0.191342 -0.875 0.125 0.353553 -0.9375 0.125 0.46194 -1 0.125 0.5 - -0 0.1875 0.270598 -0.0625 0.1875 0.25 -0.125 0.1875 0.191342 -0.1875 0.1875 0.103553 -0.25 0.1875 4.85723e-17 -0.3125 0.1875 -0.103553 -0.375 0.1875 -0.191342 -0.4375 0.1875 -0.25 -0.5 0.1875 -0.270598 -0.5625 0.1875 -0.25 -0.625 0.1875 -0.191342 -0.6875 0.1875 -0.103553 -0.75 0.1875 -3.46945e-17 -0.8125 0.1875 0.103553 -0.875 0.1875 0.191342 -0.9375 0.1875 0.25 -1 0.1875 0.270598 - -0 0.25 1.11022e-16 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -1.11022e-16 -0.5625 0.25 -5.55112e-17 -0.625 0.25 0 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -1.2326e-32 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 5.55112e-17 -1 0.25 1.11022e-16 - -0 0.3125 -0.270598 -0.0625 0.3125 -0.25 -0.125 0.3125 -0.191342 -0.1875 0.3125 -0.103553 -0.25 0.3125 -4.16334e-17 -0.3125 0.3125 0.103553 -0.375 0.3125 0.191342 -0.4375 0.3125 0.25 -0.5 0.3125 0.270598 -0.5625 0.3125 0.25 -0.625 0.3125 0.191342 -0.6875 0.3125 0.103553 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.103553 -0.875 0.3125 -0.191342 -0.9375 0.3125 -0.25 -1 0.3125 -0.270598 - -0 0.375 -0.5 -0.0625 0.375 -0.46194 -0.125 0.375 -0.353553 -0.1875 0.375 -0.191342 -0.25 0.375 -5.55112e-17 -0.3125 0.375 0.191342 -0.375 0.375 0.353553 -0.4375 0.375 0.46194 -0.5 0.375 0.5 -0.5625 0.375 0.46194 -0.625 0.375 0.353553 -0.6875 0.375 0.191342 -0.75 0.375 5.55112e-17 -0.8125 0.375 -0.191342 -0.875 0.375 -0.353553 -0.9375 0.375 -0.46194 -1 0.375 -0.5 - -0 0.4375 -0.653281 -0.0625 0.4375 -0.603553 -0.125 0.4375 -0.46194 -0.1875 0.4375 -0.25 -0.25 0.4375 -9.71445e-17 -0.3125 0.4375 0.25 -0.375 0.4375 0.46194 -0.4375 0.4375 0.603553 -0.5 0.4375 0.653281 -0.5625 0.4375 0.603553 -0.625 0.4375 0.46194 -0.6875 0.4375 0.25 -0.75 0.4375 6.93889e-17 -0.8125 0.4375 -0.25 -0.875 0.4375 -0.46194 -0.9375 0.4375 -0.603553 -1 0.4375 -0.653281 - -0 0.5 -0.707107 -0.0625 0.5 -0.653281 -0.125 0.5 -0.5 -0.1875 0.5 -0.270598 -0.25 0.5 -1.11022e-16 -0.3125 0.5 0.270598 -0.375 0.5 0.5 -0.4375 0.5 0.653281 -0.5 0.5 0.707107 -0.5625 0.5 0.653281 -0.625 0.5 0.5 -0.6875 0.5 0.270598 -0.75 0.5 5.55112e-17 -0.8125 0.5 -0.270598 -0.875 0.5 -0.5 -0.9375 0.5 -0.653281 -1 0.5 -0.707107 - -0 0.5625 -0.653281 -0.0625 0.5625 -0.603553 -0.125 0.5625 -0.46194 -0.1875 0.5625 -0.25 -0.25 0.5625 -9.71445e-17 -0.3125 0.5625 0.25 -0.375 0.5625 0.46194 -0.4375 0.5625 0.603553 -0.5 0.5625 0.653281 -0.5625 0.5625 0.603553 -0.625 0.5625 0.46194 -0.6875 0.5625 0.25 -0.75 0.5625 6.93889e-17 -0.8125 0.5625 -0.25 -0.875 0.5625 -0.46194 -0.9375 0.5625 -0.603553 -1 0.5625 -0.653281 - -0 0.625 -0.5 -0.0625 0.625 -0.46194 -0.125 0.625 -0.353553 -0.1875 0.625 -0.191342 -0.25 0.625 -8.32667e-17 -0.3125 0.625 0.191342 -0.375 0.625 0.353553 -0.4375 0.625 0.46194 -0.5 0.625 0.5 -0.5625 0.625 0.46194 -0.625 0.625 0.353553 -0.6875 0.625 0.191342 -0.75 0.625 5.55112e-17 -0.8125 0.625 -0.191342 -0.875 0.625 -0.353553 -0.9375 0.625 -0.46194 -1 0.625 -0.5 - -0 0.6875 -0.270598 -0.0625 0.6875 -0.25 -0.125 0.6875 -0.191342 -0.1875 0.6875 -0.103553 -0.25 0.6875 -4.33681e-17 -0.3125 0.6875 0.103553 -0.375 0.6875 0.191342 -0.4375 0.6875 0.25 -0.5 0.6875 0.270598 -0.5625 0.6875 0.25 -0.625 0.6875 0.191342 -0.6875 0.6875 0.103553 -0.75 0.6875 3.98986e-17 -0.8125 0.6875 -0.103553 -0.875 0.6875 -0.191342 -0.9375 0.6875 -0.25 -1 0.6875 -0.270598 - -0 0.75 -5.55112e-17 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -1.11022e-16 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 5.55112e-17 -0.5625 0.75 1.11022e-16 -0.625 0.75 1.66533e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -1.11022e-16 -1 0.75 -5.55112e-17 - -0 0.8125 0.270598 -0.0625 0.8125 0.25 -0.125 0.8125 0.191342 -0.1875 0.8125 0.103553 -0.25 0.8125 4.16334e-17 -0.3125 0.8125 -0.103553 -0.375 0.8125 -0.191342 -0.4375 0.8125 -0.25 -0.5 0.8125 -0.270598 -0.5625 0.8125 -0.25 -0.625 0.8125 -0.191342 -0.6875 0.8125 -0.103553 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.103553 -0.875 0.8125 0.191342 -0.9375 0.8125 0.25 -1 0.8125 0.270598 - -0 0.875 0.5 -0.0625 0.875 0.46194 -0.125 0.875 0.353553 -0.1875 0.875 0.191342 -0.25 0.875 5.55112e-17 -0.3125 0.875 -0.191342 -0.375 0.875 -0.353553 -0.4375 0.875 -0.46194 -0.5 0.875 -0.5 -0.5625 0.875 -0.46194 -0.625 0.875 -0.353553 -0.6875 0.875 -0.191342 -0.75 0.875 -5.55112e-17 -0.8125 0.875 0.191342 -0.875 0.875 0.353553 -0.9375 0.875 0.46194 -1 0.875 0.5 - -0 0.9375 0.653281 -0.0625 0.9375 0.603553 -0.125 0.9375 0.46194 -0.1875 0.9375 0.25 -0.25 0.9375 9.71445e-17 -0.3125 0.9375 -0.25 -0.375 0.9375 -0.46194 -0.4375 0.9375 -0.603553 -0.5 0.9375 -0.653281 -0.5625 0.9375 -0.603553 -0.625 0.9375 -0.46194 -0.6875 0.9375 -0.25 -0.75 0.9375 -6.93889e-17 -0.8125 0.9375 0.25 -0.875 0.9375 0.46194 -0.9375 0.9375 0.603553 -1 0.9375 0.653281 - -0 1 0.707107 -0.0625 1 0.653281 -0.125 1 0.5 -0.1875 1 0.270598 -0.25 1 1.11022e-16 -0.3125 1 -0.270598 -0.375 1 -0.5 -0.4375 1 -0.653281 -0.5 1 -0.707107 -0.5625 1 -0.653281 -0.625 1 -0.5 -0.6875 1 -0.270598 -0.75 1 -5.55112e-17 -0.8125 1 0.270598 -0.875 1 0.5 -0.9375 1 0.653281 -1 1 0.707107 - - -0 0 0.684547 -0.0625 0 0.632439 -0.125 0 0.484048 -0.1875 0 0.261965 -0.25 0 0 -0.3125 0 -0.261965 -0.375 0 -0.484048 -0.4375 0 -0.632439 -0.5 0 -0.684547 -0.5625 0 -0.632439 -0.625 0 -0.484048 -0.6875 0 -0.261965 -0.75 0 -1.66533e-16 -0.8125 0 0.261965 -0.875 0 0.484048 -0.9375 0 0.632439 -1 0 0.684547 - -0 0.0625 0.632439 -0.0625 0.0625 0.584298 -0.125 0.0625 0.447202 -0.1875 0.0625 0.242024 -0.25 0.0625 6.93889e-18 -0.3125 0.0625 -0.242024 -0.375 0.0625 -0.447202 -0.4375 0.0625 -0.584298 -0.5 0.0625 -0.632439 -0.5625 0.0625 -0.584298 -0.625 0.0625 -0.447202 -0.6875 0.0625 -0.242024 -0.75 0.0625 -1.59595e-16 -0.8125 0.0625 0.242024 -0.875 0.0625 0.447202 -0.9375 0.0625 0.584298 -1 0.0625 0.632439 - -0 0.125 0.484048 -0.0625 0.125 0.447202 -0.125 0.125 0.342274 -0.1875 0.125 0.185237 -0.25 0.125 -1.38778e-17 -0.3125 0.125 -0.185237 -0.375 0.125 -0.342274 -0.4375 0.125 -0.447202 -0.5 0.125 -0.484048 -0.5625 0.125 -0.447202 -0.625 0.125 -0.342274 -0.6875 0.125 -0.185237 -0.75 0.125 -1.249e-16 -0.8125 0.125 0.185237 -0.875 0.125 0.342274 -0.9375 0.125 0.447202 -1 0.125 0.484048 - -0 0.1875 0.261965 -0.0625 0.1875 0.242024 -0.125 0.1875 0.185237 -0.1875 0.1875 0.10025 -0.25 0.1875 6.93889e-18 -0.3125 0.1875 -0.10025 -0.375 0.1875 -0.185237 -0.4375 0.1875 -0.242024 -0.5 0.1875 -0.261965 -0.5625 0.1875 -0.242024 -0.625 0.1875 -0.185237 -0.6875 0.1875 -0.10025 -0.75 0.1875 -7.63278e-17 -0.8125 0.1875 0.10025 -0.875 0.1875 0.185237 -0.9375 0.1875 0.242024 -1 0.1875 0.261965 - -0 0.25 0 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 0 -0.4375 0.25 0 -0.5 0.25 0 -0.5625 0.25 -5.55112e-17 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -2.77556e-17 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 2.77556e-17 -0.9375 0.25 5.55112e-17 -1 0.25 0 - -0 0.3125 -0.261965 -0.0625 0.3125 -0.242024 -0.125 0.3125 -0.185237 -0.1875 0.3125 -0.10025 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.10025 -0.375 0.3125 0.185237 -0.4375 0.3125 0.242024 -0.5 0.3125 0.261965 -0.5625 0.3125 0.242024 -0.625 0.3125 0.185237 -0.6875 0.3125 0.10025 -0.75 0.3125 6.93889e-17 -0.8125 0.3125 -0.10025 -0.875 0.3125 -0.185237 -0.9375 0.3125 -0.242024 -1 0.3125 -0.261965 - -0 0.375 -0.484048 -0.0625 0.375 -0.447202 -0.125 0.375 -0.342274 -0.1875 0.375 -0.185237 -0.25 0.375 0 -0.3125 0.375 0.185237 -0.375 0.375 0.342274 -0.4375 0.375 0.447202 -0.5 0.375 0.484048 -0.5625 0.375 0.447202 -0.625 0.375 0.342274 -0.6875 0.375 0.185237 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.185237 -0.875 0.375 -0.342274 -0.9375 0.375 -0.447202 -1 0.375 -0.484048 - -0 0.4375 -0.632439 -0.0625 0.4375 -0.584298 -0.125 0.4375 -0.447202 -0.1875 0.4375 -0.242024 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.242024 -0.375 0.4375 0.447202 -0.4375 0.4375 0.584298 -0.5 0.4375 0.632439 -0.5625 0.4375 0.584298 -0.625 0.4375 0.447202 -0.6875 0.4375 0.242024 -0.75 0.4375 1.52656e-16 -0.8125 0.4375 -0.242024 -0.875 0.4375 -0.447202 -0.9375 0.4375 -0.584298 -1 0.4375 -0.632439 - -0 0.5 -0.684547 -0.0625 0.5 -0.632439 -0.125 0.5 -0.484048 -0.1875 0.5 -0.261965 -0.25 0.5 0 -0.3125 0.5 0.261965 -0.375 0.5 0.484048 -0.4375 0.5 0.632439 -0.5 0.5 0.684547 -0.5625 0.5 0.632439 -0.625 0.5 0.484048 -0.6875 0.5 0.261965 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.261965 -0.875 0.5 -0.484048 -0.9375 0.5 -0.632439 -1 0.5 -0.684547 - -0 0.5625 -0.632439 -0.0625 0.5625 -0.584298 -0.125 0.5625 -0.447202 -0.1875 0.5625 -0.242024 -0.25 0.5625 -1.38778e-17 -0.3125 0.5625 0.242024 -0.375 0.5625 0.447202 -0.4375 0.5625 0.584298 -0.5 0.5625 0.632439 -0.5625 0.5625 0.584298 -0.625 0.5625 0.447202 -0.6875 0.5625 0.242024 -0.75 0.5625 1.52656e-16 -0.8125 0.5625 -0.242024 -0.875 0.5625 -0.447202 -0.9375 0.5625 -0.584298 -1 0.5625 -0.632439 - -0 0.625 -0.484048 -0.0625 0.625 -0.447202 -0.125 0.625 -0.342274 -0.1875 0.625 -0.185237 -0.25 0.625 -6.16298e-33 -0.3125 0.625 0.185237 -0.375 0.625 0.342274 -0.4375 0.625 0.447202 -0.5 0.625 0.484048 -0.5625 0.625 0.447202 -0.625 0.625 0.342274 -0.6875 0.625 0.185237 -0.75 0.625 1.11022e-16 -0.8125 0.625 -0.185237 -0.875 0.625 -0.342274 -0.9375 0.625 -0.447202 -1 0.625 -0.484048 - -0 0.6875 -0.261965 -0.0625 0.6875 -0.242024 -0.125 0.6875 -0.185237 -0.1875 0.6875 -0.10025 -0.25 0.6875 -1.38778e-17 -0.3125 0.6875 0.10025 -0.375 0.6875 0.185237 -0.4375 0.6875 0.242024 -0.5 0.6875 0.261965 -0.5625 0.6875 0.242024 -0.625 0.6875 0.185237 -0.6875 0.6875 0.10025 -0.75 0.6875 6.93889e-17 -0.8125 0.6875 -0.10025 -0.875 0.6875 -0.185237 -0.9375 0.6875 -0.242024 -1 0.6875 -0.261965 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.66533e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 8.32667e-17 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.261965 -0.0625 0.8125 0.242024 -0.125 0.8125 0.185237 -0.1875 0.8125 0.10025 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.10025 -0.375 0.8125 -0.185237 -0.4375 0.8125 -0.242024 -0.5 0.8125 -0.261965 -0.5625 0.8125 -0.242024 -0.625 0.8125 -0.185237 -0.6875 0.8125 -0.10025 -0.75 0.8125 -6.93889e-17 -0.8125 0.8125 0.10025 -0.875 0.8125 0.185237 -0.9375 0.8125 0.242024 -1 0.8125 0.261965 - -0 0.875 0.484048 -0.0625 0.875 0.447202 -0.125 0.875 0.342274 -0.1875 0.875 0.185237 -0.25 0.875 -6.16298e-33 -0.3125 0.875 -0.185237 -0.375 0.875 -0.342274 -0.4375 0.875 -0.447202 -0.5 0.875 -0.484048 -0.5625 0.875 -0.447202 -0.625 0.875 -0.342274 -0.6875 0.875 -0.185237 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.185237 -0.875 0.875 0.342274 -0.9375 0.875 0.447202 -1 0.875 0.484048 - -0 0.9375 0.632439 -0.0625 0.9375 0.584298 -0.125 0.9375 0.447202 -0.1875 0.9375 0.242024 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.242024 -0.375 0.9375 -0.447202 -0.4375 0.9375 -0.584298 -0.5 0.9375 -0.632439 -0.5625 0.9375 -0.584298 -0.625 0.9375 -0.447202 -0.6875 0.9375 -0.242024 -0.75 0.9375 -1.52656e-16 -0.8125 0.9375 0.242024 -0.875 0.9375 0.447202 -0.9375 0.9375 0.584298 -1 0.9375 0.632439 - -0 1 0.684547 -0.0625 1 0.632439 -0.125 1 0.484048 -0.1875 1 0.261965 -0.25 1 0 -0.3125 1 -0.261965 -0.375 1 -0.484048 -0.4375 1 -0.632439 -0.5 1 -0.684547 -0.5625 1 -0.632439 -0.625 1 -0.484048 -0.6875 1 -0.261965 -0.75 1 -1.66533e-16 -0.8125 1 0.261965 -0.875 1 0.484048 -0.9375 1 0.632439 -1 1 0.684547 - - -0 0 0.661312 -0.0625 0 0.610972 -0.125 0 0.467618 -0.1875 0 0.253073 -0.25 0 5.55112e-17 -0.3125 0 -0.253073 -0.375 0 -0.467618 -0.4375 0 -0.610972 -0.5 0 -0.661312 -0.5625 0 -0.610972 -0.625 0 -0.467618 -0.6875 0 -0.253073 -0.75 0 -1.11022e-16 -0.8125 0 0.253073 -0.875 0 0.467618 -0.9375 0 0.610972 -1 0 0.661312 - -0 0.0625 0.610972 -0.0625 0.0625 0.564465 -0.125 0.0625 0.432023 -0.1875 0.0625 0.233809 -0.25 0.0625 6.245e-17 -0.3125 0.0625 -0.233809 -0.375 0.0625 -0.432023 -0.4375 0.0625 -0.564465 -0.5 0.0625 -0.610972 -0.5625 0.0625 -0.564465 -0.625 0.0625 -0.432023 -0.6875 0.0625 -0.233809 -0.75 0.0625 -1.04083e-16 -0.8125 0.0625 0.233809 -0.875 0.0625 0.432023 -0.9375 0.0625 0.564465 -1 0.0625 0.610972 - -0 0.125 0.467618 -0.0625 0.125 0.432023 -0.125 0.125 0.330656 -0.1875 0.125 0.17895 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.17895 -0.375 0.125 -0.330656 -0.4375 0.125 -0.432023 -0.5 0.125 -0.467618 -0.5625 0.125 -0.432023 -0.625 0.125 -0.330656 -0.6875 0.125 -0.17895 -0.75 0.125 -6.93889e-17 -0.8125 0.125 0.17895 -0.875 0.125 0.330656 -0.9375 0.125 0.432023 -1 0.125 0.467618 - -0 0.1875 0.253073 -0.0625 0.1875 0.233809 -0.125 0.1875 0.17895 -0.1875 0.1875 0.0968469 -0.25 0.1875 3.46945e-17 -0.3125 0.1875 -0.0968469 -0.375 0.1875 -0.17895 -0.4375 0.1875 -0.233809 -0.5 0.1875 -0.253073 -0.5625 0.1875 -0.233809 -0.625 0.1875 -0.17895 -0.6875 0.1875 -0.0968469 -0.75 0.1875 -4.85723e-17 -0.8125 0.1875 0.0968469 -0.875 0.1875 0.17895 -0.9375 0.1875 0.233809 -1 0.1875 0.253073 - -0 0.25 5.55112e-17 -0.0625 0.25 0 -0.125 0.25 5.55112e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -5.55112e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 0 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -5.55112e-17 -0.75 0.25 0 -0.8125 0.25 5.55112e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 5.55112e-17 - -0 0.3125 -0.253073 -0.0625 0.3125 -0.233809 -0.125 0.3125 -0.17895 -0.1875 0.3125 -0.0968469 -0.25 0.3125 -2.77556e-17 -0.3125 0.3125 0.0968469 -0.375 0.3125 0.17895 -0.4375 0.3125 0.233809 -0.5 0.3125 0.253073 -0.5625 0.3125 0.233809 -0.625 0.3125 0.17895 -0.6875 0.3125 0.0968469 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.0968469 -0.875 0.3125 -0.17895 -0.9375 0.3125 -0.233809 -1 0.3125 -0.253073 - -0 0.375 -0.467618 -0.0625 0.375 -0.432023 -0.125 0.375 -0.330656 -0.1875 0.375 -0.17895 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.17895 -0.375 0.375 0.330656 -0.4375 0.375 0.432023 -0.5 0.375 0.467618 -0.5625 0.375 0.432023 -0.625 0.375 0.330656 -0.6875 0.375 0.17895 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.17895 -0.875 0.375 -0.330656 -0.9375 0.375 -0.432023 -1 0.375 -0.467618 - -0 0.4375 -0.610972 -0.0625 0.4375 -0.564465 -0.125 0.4375 -0.432023 -0.1875 0.4375 -0.233809 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.233809 -0.375 0.4375 0.432023 -0.4375 0.4375 0.564465 -0.5 0.4375 0.610972 -0.5625 0.4375 0.564465 -0.625 0.4375 0.432023 -0.6875 0.4375 0.233809 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.233809 -0.875 0.4375 -0.432023 -0.9375 0.4375 -0.564465 -1 0.4375 -0.610972 - -0 0.5 -0.661312 -0.0625 0.5 -0.610972 -0.125 0.5 -0.467618 -0.1875 0.5 -0.253073 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.253073 -0.375 0.5 0.467618 -0.4375 0.5 0.610972 -0.5 0.5 0.661312 -0.5625 0.5 0.610972 -0.625 0.5 0.467618 -0.6875 0.5 0.253073 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.253073 -0.875 0.5 -0.467618 -0.9375 0.5 -0.610972 -1 0.5 -0.661312 - -0 0.5625 -0.610972 -0.0625 0.5625 -0.564465 -0.125 0.5625 -0.432023 -0.1875 0.5625 -0.233809 -0.25 0.5625 -5.55112e-17 -0.3125 0.5625 0.233809 -0.375 0.5625 0.432023 -0.4375 0.5625 0.564465 -0.5 0.5625 0.610972 -0.5625 0.5625 0.564465 -0.625 0.5625 0.432023 -0.6875 0.5625 0.233809 -0.75 0.5625 1.11022e-16 -0.8125 0.5625 -0.233809 -0.875 0.5625 -0.432023 -0.9375 0.5625 -0.564465 -1 0.5625 -0.610972 - -0 0.625 -0.467618 -0.0625 0.625 -0.432023 -0.125 0.625 -0.330656 -0.1875 0.625 -0.17895 -0.25 0.625 -2.77556e-17 -0.3125 0.625 0.17895 -0.375 0.625 0.330656 -0.4375 0.625 0.432023 -0.5 0.625 0.467618 -0.5625 0.625 0.432023 -0.625 0.625 0.330656 -0.6875 0.625 0.17895 -0.75 0.625 8.32667e-17 -0.8125 0.625 -0.17895 -0.875 0.625 -0.330656 -0.9375 0.625 -0.432023 -1 0.625 -0.467618 - -0 0.6875 -0.253073 -0.0625 0.6875 -0.233809 -0.125 0.6875 -0.17895 -0.1875 0.6875 -0.0968469 -0.25 0.6875 -2.77556e-17 -0.3125 0.6875 0.0968469 -0.375 0.6875 0.17895 -0.4375 0.6875 0.233809 -0.5 0.6875 0.253073 -0.5625 0.6875 0.233809 -0.625 0.6875 0.17895 -0.6875 0.6875 0.0968469 -0.75 0.6875 5.55112e-17 -0.8125 0.6875 -0.0968469 -0.875 0.6875 -0.17895 -0.9375 0.6875 -0.233809 -1 0.6875 -0.253073 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.66533e-16 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 2.77556e-17 -0.375 0.75 8.32667e-17 -0.4375 0.75 1.66533e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.66533e-16 -0.625 0.75 8.32667e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -8.32667e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -1.11022e-16 - -0 0.8125 0.253073 -0.0625 0.8125 0.233809 -0.125 0.8125 0.17895 -0.1875 0.8125 0.0968469 -0.25 0.8125 2.77556e-17 -0.3125 0.8125 -0.0968469 -0.375 0.8125 -0.17895 -0.4375 0.8125 -0.233809 -0.5 0.8125 -0.253073 -0.5625 0.8125 -0.233809 -0.625 0.8125 -0.17895 -0.6875 0.8125 -0.0968469 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.0968469 -0.875 0.8125 0.17895 -0.9375 0.8125 0.233809 -1 0.8125 0.253073 - -0 0.875 0.467618 -0.0625 0.875 0.432023 -0.125 0.875 0.330656 -0.1875 0.875 0.17895 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.17895 -0.375 0.875 -0.330656 -0.4375 0.875 -0.432023 -0.5 0.875 -0.467618 -0.5625 0.875 -0.432023 -0.625 0.875 -0.330656 -0.6875 0.875 -0.17895 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.17895 -0.875 0.875 0.330656 -0.9375 0.875 0.432023 -1 0.875 0.467618 - -0 0.9375 0.610972 -0.0625 0.9375 0.564465 -0.125 0.9375 0.432023 -0.1875 0.9375 0.233809 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.233809 -0.375 0.9375 -0.432023 -0.4375 0.9375 -0.564465 -0.5 0.9375 -0.610972 -0.5625 0.9375 -0.564465 -0.625 0.9375 -0.432023 -0.6875 0.9375 -0.233809 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.233809 -0.875 0.9375 0.432023 -0.9375 0.9375 0.564465 -1 0.9375 0.610972 - -0 1 0.661312 -0.0625 1 0.610972 -0.125 1 0.467618 -0.1875 1 0.253073 -0.25 1 5.55112e-17 -0.3125 1 -0.253073 -0.375 1 -0.467618 -0.4375 1 -0.610972 -0.5 1 -0.661312 -0.5625 1 -0.610972 -0.625 1 -0.467618 -0.6875 1 -0.253073 -0.75 1 -1.11022e-16 -0.8125 1 0.253073 -0.875 1 0.467618 -0.9375 1 0.610972 -1 1 0.661312 - - -0 0 0.637424 -0.0625 0 0.588903 -0.125 0 0.450727 -0.1875 0 0.243932 -0.25 0 0 -0.3125 0 -0.243932 -0.375 0 -0.450727 -0.4375 0 -0.588903 -0.5 0 -0.637424 -0.5625 0 -0.588903 -0.625 0 -0.450727 -0.6875 0 -0.243932 -0.75 0 -1.66533e-16 -0.8125 0 0.243932 -0.875 0 0.450727 -0.9375 0 0.588903 -1 0 0.637424 - -0 0.0625 0.588903 -0.0625 0.0625 0.544075 -0.125 0.0625 0.416417 -0.1875 0.0625 0.225363 -0.25 0.0625 2.08167e-17 -0.3125 0.0625 -0.225363 -0.375 0.0625 -0.416417 -0.4375 0.0625 -0.544075 -0.5 0.0625 -0.588903 -0.5625 0.0625 -0.544075 -0.625 0.0625 -0.416417 -0.6875 0.0625 -0.225363 -0.75 0.0625 -1.45717e-16 -0.8125 0.0625 0.225363 -0.875 0.0625 0.416417 -0.9375 0.0625 0.544075 -1 0.0625 0.588903 - -0 0.125 0.450727 -0.0625 0.125 0.416417 -0.125 0.125 0.318712 -0.1875 0.125 0.172486 -0.25 0.125 1.38778e-17 -0.3125 0.125 -0.172486 -0.375 0.125 -0.318712 -0.4375 0.125 -0.416417 -0.5 0.125 -0.450727 -0.5625 0.125 -0.416417 -0.625 0.125 -0.318712 -0.6875 0.125 -0.172486 -0.75 0.125 -9.71445e-17 -0.8125 0.125 0.172486 -0.875 0.125 0.318712 -0.9375 0.125 0.416417 -1 0.125 0.450727 - -0 0.1875 0.243932 -0.0625 0.1875 0.225363 -0.125 0.1875 0.172486 -0.1875 0.1875 0.0933486 -0.25 0.1875 6.93889e-18 -0.3125 0.1875 -0.0933486 -0.375 0.1875 -0.172486 -0.4375 0.1875 -0.225363 -0.5 0.1875 -0.243932 -0.5625 0.1875 -0.225363 -0.625 0.1875 -0.172486 -0.6875 0.1875 -0.0933486 -0.75 0.1875 -4.85723e-17 -0.8125 0.1875 0.0933486 -0.875 0.1875 0.172486 -0.9375 0.1875 0.225363 -1 0.1875 0.243932 - -0 0.25 0 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 1.38778e-17 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -5.55112e-17 -0.625 0.25 -8.32667e-17 -0.6875 0.25 -4.16334e-17 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 1.11022e-16 -1 0.25 0 - -0 0.3125 -0.243932 -0.0625 0.3125 -0.225363 -0.125 0.3125 -0.172486 -0.1875 0.3125 -0.0933486 -0.25 0.3125 0 -0.3125 0.3125 0.0933486 -0.375 0.3125 0.172486 -0.4375 0.3125 0.225363 -0.5 0.3125 0.243932 -0.5625 0.3125 0.225363 -0.625 0.3125 0.172486 -0.6875 0.3125 0.0933486 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.0933486 -0.875 0.3125 -0.172486 -0.9375 0.3125 -0.225363 -1 0.3125 -0.243932 - -0 0.375 -0.450727 -0.0625 0.375 -0.416417 -0.125 0.375 -0.318712 -0.1875 0.375 -0.172486 -0.25 0.375 0 -0.3125 0.375 0.172486 -0.375 0.375 0.318712 -0.4375 0.375 0.416417 -0.5 0.375 0.450727 -0.5625 0.375 0.416417 -0.625 0.375 0.318712 -0.6875 0.375 0.172486 -0.75 0.375 1.11022e-16 -0.8125 0.375 -0.172486 -0.875 0.375 -0.318712 -0.9375 0.375 -0.416417 -1 0.375 -0.450727 - -0 0.4375 -0.588903 -0.0625 0.4375 -0.544075 -0.125 0.4375 -0.416417 -0.1875 0.4375 -0.225363 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.225363 -0.375 0.4375 0.416417 -0.4375 0.4375 0.544075 -0.5 0.4375 0.588903 -0.5625 0.4375 0.544075 -0.625 0.4375 0.416417 -0.6875 0.4375 0.225363 -0.75 0.4375 1.52656e-16 -0.8125 0.4375 -0.225363 -0.875 0.4375 -0.416417 -0.9375 0.4375 -0.544075 -1 0.4375 -0.588903 - -0 0.5 -0.637424 -0.0625 0.5 -0.588903 -0.125 0.5 -0.450727 -0.1875 0.5 -0.243932 -0.25 0.5 0 -0.3125 0.5 0.243932 -0.375 0.5 0.450727 -0.4375 0.5 0.588903 -0.5 0.5 0.637424 -0.5625 0.5 0.588903 -0.625 0.5 0.450727 -0.6875 0.5 0.243932 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.243932 -0.875 0.5 -0.450727 -0.9375 0.5 -0.588903 -1 0.5 -0.637424 - -0 0.5625 -0.588903 -0.0625 0.5625 -0.544075 -0.125 0.5625 -0.416417 -0.1875 0.5625 -0.225363 -0.25 0.5625 -1.38778e-17 -0.3125 0.5625 0.225363 -0.375 0.5625 0.416417 -0.4375 0.5625 0.544075 -0.5 0.5625 0.588903 -0.5625 0.5625 0.544075 -0.625 0.5625 0.416417 -0.6875 0.5625 0.225363 -0.75 0.5625 1.52656e-16 -0.8125 0.5625 -0.225363 -0.875 0.5625 -0.416417 -0.9375 0.5625 -0.544075 -1 0.5625 -0.588903 - -0 0.625 -0.450727 -0.0625 0.625 -0.416417 -0.125 0.625 -0.318712 -0.1875 0.625 -0.172486 -0.25 0.625 -6.16298e-33 -0.3125 0.625 0.172486 -0.375 0.625 0.318712 -0.4375 0.625 0.416417 -0.5 0.625 0.450727 -0.5625 0.625 0.416417 -0.625 0.625 0.318712 -0.6875 0.625 0.172486 -0.75 0.625 1.11022e-16 -0.8125 0.625 -0.172486 -0.875 0.625 -0.318712 -0.9375 0.625 -0.416417 -1 0.625 -0.450727 - -0 0.6875 -0.243932 -0.0625 0.6875 -0.225363 -0.125 0.6875 -0.172486 -0.1875 0.6875 -0.0933486 -0.25 0.6875 1.73472e-18 -0.3125 0.6875 0.0933486 -0.375 0.6875 0.172486 -0.4375 0.6875 0.225363 -0.5 0.6875 0.243932 -0.5625 0.6875 0.225363 -0.625 0.6875 0.172486 -0.6875 0.6875 0.0933486 -0.75 0.6875 5.72459e-17 -0.8125 0.6875 -0.0933486 -0.875 0.6875 -0.172486 -0.9375 0.6875 -0.225363 -1 0.6875 -0.243932 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 8.32667e-17 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -4.16334e-17 -0.875 0.75 -8.32667e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -1.66533e-16 - -0 0.8125 0.243932 -0.0625 0.8125 0.225363 -0.125 0.8125 0.172486 -0.1875 0.8125 0.0933486 -0.25 0.8125 -9.24446e-33 -0.3125 0.8125 -0.0933486 -0.375 0.8125 -0.172486 -0.4375 0.8125 -0.225363 -0.5 0.8125 -0.243932 -0.5625 0.8125 -0.225363 -0.625 0.8125 -0.172486 -0.6875 0.8125 -0.0933486 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.0933486 -0.875 0.8125 0.172486 -0.9375 0.8125 0.225363 -1 0.8125 0.243932 - -0 0.875 0.450727 -0.0625 0.875 0.416417 -0.125 0.875 0.318712 -0.1875 0.875 0.172486 -0.25 0.875 -6.16298e-33 -0.3125 0.875 -0.172486 -0.375 0.875 -0.318712 -0.4375 0.875 -0.416417 -0.5 0.875 -0.450727 -0.5625 0.875 -0.416417 -0.625 0.875 -0.318712 -0.6875 0.875 -0.172486 -0.75 0.875 -1.11022e-16 -0.8125 0.875 0.172486 -0.875 0.875 0.318712 -0.9375 0.875 0.416417 -1 0.875 0.450727 - -0 0.9375 0.588903 -0.0625 0.9375 0.544075 -0.125 0.9375 0.416417 -0.1875 0.9375 0.225363 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.225363 -0.375 0.9375 -0.416417 -0.4375 0.9375 -0.544075 -0.5 0.9375 -0.588903 -0.5625 0.9375 -0.544075 -0.625 0.9375 -0.416417 -0.6875 0.9375 -0.225363 -0.75 0.9375 -1.52656e-16 -0.8125 0.9375 0.225363 -0.875 0.9375 0.416417 -0.9375 0.9375 0.544075 -1 0.9375 0.588903 - -0 1 0.637424 -0.0625 1 0.588903 -0.125 1 0.450727 -0.1875 1 0.243932 -0.25 1 0 -0.3125 1 -0.243932 -0.375 1 -0.450727 -0.4375 1 -0.588903 -0.5 1 -0.637424 -0.5625 1 -0.588903 -0.625 1 -0.450727 -0.6875 1 -0.243932 -0.75 1 -1.66533e-16 -0.8125 1 0.243932 -0.875 1 0.450727 -0.9375 1 0.588903 -1 1 0.637424 - - -0 0 0.612907 -0.0625 0 0.566252 -0.125 0 0.433391 -0.1875 0 0.234549 -0.25 0 5.55112e-17 -0.3125 0 -0.234549 -0.375 0 -0.433391 -0.4375 0 -0.566252 -0.5 0 -0.612907 -0.5625 0 -0.566252 -0.625 0 -0.433391 -0.6875 0 -0.234549 -0.75 0 -1.11022e-16 -0.8125 0 0.234549 -0.875 0 0.433391 -0.9375 0 0.566252 -1 0 0.612907 - -0 0.0625 0.566252 -0.0625 0.0625 0.523149 -0.125 0.0625 0.400401 -0.1875 0.0625 0.216695 -0.25 0.0625 6.245e-17 -0.3125 0.0625 -0.216695 -0.375 0.0625 -0.400401 -0.4375 0.0625 -0.523149 -0.5 0.0625 -0.566252 -0.5625 0.0625 -0.523149 -0.625 0.0625 -0.400401 -0.6875 0.0625 -0.216695 -0.75 0.0625 -1.04083e-16 -0.8125 0.0625 0.216695 -0.875 0.0625 0.400401 -0.9375 0.0625 0.523149 -1 0.0625 0.566252 - -0 0.125 0.433391 -0.0625 0.125 0.400401 -0.125 0.125 0.306454 -0.1875 0.125 0.165851 -0.25 0.125 4.16334e-17 -0.3125 0.125 -0.165851 -0.375 0.125 -0.306454 -0.4375 0.125 -0.400401 -0.5 0.125 -0.433391 -0.5625 0.125 -0.400401 -0.625 0.125 -0.306454 -0.6875 0.125 -0.165851 -0.75 0.125 -6.93889e-17 -0.8125 0.125 0.165851 -0.875 0.125 0.306454 -0.9375 0.125 0.400401 -1 0.125 0.433391 - -0 0.1875 0.234549 -0.0625 0.1875 0.216695 -0.125 0.1875 0.165851 -0.1875 0.1875 0.0897582 -0.25 0.1875 1.9082e-17 -0.3125 0.1875 -0.0897582 -0.375 0.1875 -0.165851 -0.4375 0.1875 -0.216695 -0.5 0.1875 -0.234549 -0.5625 0.1875 -0.216695 -0.625 0.1875 -0.165851 -0.6875 0.1875 -0.0897582 -0.75 0.1875 -3.64292e-17 -0.8125 0.1875 0.0897582 -0.875 0.1875 0.165851 -0.9375 0.1875 0.216695 -1 0.1875 0.234549 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 8.32667e-17 -0.1875 0.25 1.38778e-17 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -2.77556e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -1.11022e-16 -0.625 0.25 -8.32667e-17 -0.6875 0.25 -4.16334e-17 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 2.77556e-17 -0.9375 0.25 0 -1 0.25 5.55112e-17 - -0 0.3125 -0.234549 -0.0625 0.3125 -0.216695 -0.125 0.3125 -0.165851 -0.1875 0.3125 -0.0897582 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.0897582 -0.375 0.3125 0.165851 -0.4375 0.3125 0.216695 -0.5 0.3125 0.234549 -0.5625 0.3125 0.216695 -0.625 0.3125 0.165851 -0.6875 0.3125 0.0897582 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.0897582 -0.875 0.3125 -0.165851 -0.9375 0.3125 -0.216695 -1 0.3125 -0.234549 - -0 0.375 -0.433391 -0.0625 0.375 -0.400401 -0.125 0.375 -0.306454 -0.1875 0.375 -0.165851 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.165851 -0.375 0.375 0.306454 -0.4375 0.375 0.400401 -0.5 0.375 0.433391 -0.5625 0.375 0.400401 -0.625 0.375 0.306454 -0.6875 0.375 0.165851 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.165851 -0.875 0.375 -0.306454 -0.9375 0.375 -0.400401 -1 0.375 -0.433391 - -0 0.4375 -0.566252 -0.0625 0.4375 -0.523149 -0.125 0.4375 -0.400401 -0.1875 0.4375 -0.216695 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.216695 -0.375 0.4375 0.400401 -0.4375 0.4375 0.523149 -0.5 0.4375 0.566252 -0.5625 0.4375 0.523149 -0.625 0.4375 0.400401 -0.6875 0.4375 0.216695 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.216695 -0.875 0.4375 -0.400401 -0.9375 0.4375 -0.523149 -1 0.4375 -0.566252 - -0 0.5 -0.612907 -0.0625 0.5 -0.566252 -0.125 0.5 -0.433391 -0.1875 0.5 -0.234549 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.234549 -0.375 0.5 0.433391 -0.4375 0.5 0.566252 -0.5 0.5 0.612907 -0.5625 0.5 0.566252 -0.625 0.5 0.433391 -0.6875 0.5 0.234549 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.234549 -0.875 0.5 -0.433391 -0.9375 0.5 -0.566252 -1 0.5 -0.612907 - -0 0.5625 -0.566252 -0.0625 0.5625 -0.523149 -0.125 0.5625 -0.400401 -0.1875 0.5625 -0.216695 -0.25 0.5625 -5.55112e-17 -0.3125 0.5625 0.216695 -0.375 0.5625 0.400401 -0.4375 0.5625 0.523149 -0.5 0.5625 0.566252 -0.5625 0.5625 0.523149 -0.625 0.5625 0.400401 -0.6875 0.5625 0.216695 -0.75 0.5625 1.11022e-16 -0.8125 0.5625 -0.216695 -0.875 0.5625 -0.400401 -0.9375 0.5625 -0.523149 -1 0.5625 -0.566252 - -0 0.625 -0.433391 -0.0625 0.625 -0.400401 -0.125 0.625 -0.306454 -0.1875 0.625 -0.165851 -0.25 0.625 -2.77556e-17 -0.3125 0.625 0.165851 -0.375 0.625 0.306454 -0.4375 0.625 0.400401 -0.5 0.625 0.433391 -0.5625 0.625 0.400401 -0.625 0.625 0.306454 -0.6875 0.625 0.165851 -0.75 0.625 8.32667e-17 -0.8125 0.625 -0.165851 -0.875 0.625 -0.306454 -0.9375 0.625 -0.400401 -1 0.625 -0.433391 - -0 0.6875 -0.234549 -0.0625 0.6875 -0.216695 -0.125 0.6875 -0.165851 -0.1875 0.6875 -0.0897582 -0.25 0.6875 -1.38778e-17 -0.3125 0.6875 0.0897582 -0.375 0.6875 0.165851 -0.4375 0.6875 0.216695 -0.5 0.6875 0.234549 -0.5625 0.6875 0.216695 -0.625 0.6875 0.165851 -0.6875 0.6875 0.0897582 -0.75 0.6875 4.16334e-17 -0.8125 0.6875 -0.0897582 -0.875 0.6875 -0.165851 -0.9375 0.6875 -0.216695 -1 0.6875 -0.234549 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 -1.2326e-32 -0.3125 0.75 5.55112e-17 -0.375 0.75 1.11022e-16 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 5.55112e-17 -0.625 0.75 5.55112e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -4.16334e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.66533e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.234549 -0.0625 0.8125 0.216695 -0.125 0.8125 0.165851 -0.1875 0.8125 0.0897582 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.0897582 -0.375 0.8125 -0.165851 -0.4375 0.8125 -0.216695 -0.5 0.8125 -0.234549 -0.5625 0.8125 -0.216695 -0.625 0.8125 -0.165851 -0.6875 0.8125 -0.0897582 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.0897582 -0.875 0.8125 0.165851 -0.9375 0.8125 0.216695 -1 0.8125 0.234549 - -0 0.875 0.433391 -0.0625 0.875 0.400401 -0.125 0.875 0.306454 -0.1875 0.875 0.165851 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.165851 -0.375 0.875 -0.306454 -0.4375 0.875 -0.400401 -0.5 0.875 -0.433391 -0.5625 0.875 -0.400401 -0.625 0.875 -0.306454 -0.6875 0.875 -0.165851 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.165851 -0.875 0.875 0.306454 -0.9375 0.875 0.400401 -1 0.875 0.433391 - -0 0.9375 0.566252 -0.0625 0.9375 0.523149 -0.125 0.9375 0.400401 -0.1875 0.9375 0.216695 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.216695 -0.375 0.9375 -0.400401 -0.4375 0.9375 -0.523149 -0.5 0.9375 -0.566252 -0.5625 0.9375 -0.523149 -0.625 0.9375 -0.400401 -0.6875 0.9375 -0.216695 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.216695 -0.875 0.9375 0.400401 -0.9375 0.9375 0.523149 -1 0.9375 0.566252 - -0 1 0.612907 -0.0625 1 0.566252 -0.125 1 0.433391 -0.1875 1 0.234549 -0.25 1 5.55112e-17 -0.3125 1 -0.234549 -0.375 1 -0.433391 -0.4375 1 -0.566252 -0.5 1 -0.612907 -0.5625 1 -0.566252 -0.625 1 -0.433391 -0.6875 1 -0.234549 -0.75 1 -1.11022e-16 -0.8125 1 0.234549 -0.875 1 0.433391 -0.9375 1 0.566252 -1 1 0.612907 - - -0 0 0.587785 -0.0625 0 0.543043 -0.125 0 0.415627 -0.1875 0 0.224936 -0.25 0 5.55112e-17 -0.3125 0 -0.224936 -0.375 0 -0.415627 -0.4375 0 -0.543043 -0.5 0 -0.587785 -0.5625 0 -0.543043 -0.625 0 -0.415627 -0.6875 0 -0.224936 -0.75 0 -1.11022e-16 -0.8125 0 0.224936 -0.875 0 0.415627 -0.9375 0 0.543043 -1 0 0.587785 - -0 0.0625 0.543043 -0.0625 0.0625 0.501706 -0.125 0.0625 0.383989 -0.1875 0.0625 0.207813 -0.25 0.0625 5.20417e-17 -0.3125 0.0625 -0.207813 -0.375 0.0625 -0.383989 -0.4375 0.0625 -0.501706 -0.5 0.0625 -0.543043 -0.5625 0.0625 -0.501706 -0.625 0.0625 -0.383989 -0.6875 0.0625 -0.207813 -0.75 0.0625 -1.14492e-16 -0.8125 0.0625 0.207813 -0.875 0.0625 0.383989 -0.9375 0.0625 0.501706 -1 0.0625 0.543043 - -0 0.125 0.415627 -0.0625 0.125 0.383989 -0.125 0.125 0.293893 -0.1875 0.125 0.159054 -0.25 0.125 2.08167e-17 -0.3125 0.125 -0.159054 -0.375 0.125 -0.293893 -0.4375 0.125 -0.383989 -0.5 0.125 -0.415627 -0.5625 0.125 -0.383989 -0.625 0.125 -0.293893 -0.6875 0.125 -0.159054 -0.75 0.125 -9.02056e-17 -0.8125 0.125 0.159054 -0.875 0.125 0.293893 -0.9375 0.125 0.383989 -1 0.125 0.415627 - -0 0.1875 0.224936 -0.0625 0.1875 0.207813 -0.125 0.1875 0.159054 -0.1875 0.1875 0.0860792 -0.25 0.1875 8.67362e-18 -0.3125 0.1875 -0.0860792 -0.375 0.1875 -0.159054 -0.4375 0.1875 -0.207813 -0.5 0.1875 -0.224936 -0.5625 0.1875 -0.207813 -0.625 0.1875 -0.159054 -0.6875 0.1875 -0.0860792 -0.75 0.1875 -4.68375e-17 -0.8125 0.1875 0.0860792 -0.875 0.1875 0.159054 -0.9375 0.1875 0.207813 -1 0.1875 0.224936 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 1.38778e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -5.55112e-17 -0.625 0.25 -2.77556e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 5.55112e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.224936 -0.0625 0.3125 -0.207813 -0.125 0.3125 -0.159054 -0.1875 0.3125 -0.0860792 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.0860792 -0.375 0.3125 0.159054 -0.4375 0.3125 0.207813 -0.5 0.3125 0.224936 -0.5625 0.3125 0.207813 -0.625 0.3125 0.159054 -0.6875 0.3125 0.0860792 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.0860792 -0.875 0.3125 -0.159054 -0.9375 0.3125 -0.207813 -1 0.3125 -0.224936 - -0 0.375 -0.415627 -0.0625 0.375 -0.383989 -0.125 0.375 -0.293893 -0.1875 0.375 -0.159054 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.159054 -0.375 0.375 0.293893 -0.4375 0.375 0.383989 -0.5 0.375 0.415627 -0.5625 0.375 0.383989 -0.625 0.375 0.293893 -0.6875 0.375 0.159054 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.159054 -0.875 0.375 -0.293893 -0.9375 0.375 -0.383989 -1 0.375 -0.415627 - -0 0.4375 -0.543043 -0.0625 0.4375 -0.501706 -0.125 0.4375 -0.383989 -0.1875 0.4375 -0.207813 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.207813 -0.375 0.4375 0.383989 -0.4375 0.4375 0.501706 -0.5 0.4375 0.543043 -0.5625 0.4375 0.501706 -0.625 0.4375 0.383989 -0.6875 0.4375 0.207813 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.207813 -0.875 0.4375 -0.383989 -0.9375 0.4375 -0.501706 -1 0.4375 -0.543043 - -0 0.5 -0.587785 -0.0625 0.5 -0.543043 -0.125 0.5 -0.415627 -0.1875 0.5 -0.224936 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.224936 -0.375 0.5 0.415627 -0.4375 0.5 0.543043 -0.5 0.5 0.587785 -0.5625 0.5 0.543043 -0.625 0.5 0.415627 -0.6875 0.5 0.224936 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.224936 -0.875 0.5 -0.415627 -0.9375 0.5 -0.543043 -1 0.5 -0.587785 - -0 0.5625 -0.543043 -0.0625 0.5625 -0.501706 -0.125 0.5625 -0.383989 -0.1875 0.5625 -0.207813 -0.25 0.5625 -5.55112e-17 -0.3125 0.5625 0.207813 -0.375 0.5625 0.383989 -0.4375 0.5625 0.501706 -0.5 0.5625 0.543043 -0.5625 0.5625 0.501706 -0.625 0.5625 0.383989 -0.6875 0.5625 0.207813 -0.75 0.5625 1.11022e-16 -0.8125 0.5625 -0.207813 -0.875 0.5625 -0.383989 -0.9375 0.5625 -0.501706 -1 0.5625 -0.543043 - -0 0.625 -0.415627 -0.0625 0.625 -0.383989 -0.125 0.625 -0.293893 -0.1875 0.625 -0.159054 -0.25 0.625 -2.77556e-17 -0.3125 0.625 0.159054 -0.375 0.625 0.293893 -0.4375 0.625 0.383989 -0.5 0.625 0.415627 -0.5625 0.625 0.383989 -0.625 0.625 0.293893 -0.6875 0.625 0.159054 -0.75 0.625 8.32667e-17 -0.8125 0.625 -0.159054 -0.875 0.625 -0.293893 -0.9375 0.625 -0.383989 -1 0.625 -0.415627 - -0 0.6875 -0.224936 -0.0625 0.6875 -0.207813 -0.125 0.6875 -0.159054 -0.1875 0.6875 -0.0860792 -0.25 0.6875 -1.38778e-17 -0.3125 0.6875 0.0860792 -0.375 0.6875 0.159054 -0.4375 0.6875 0.207813 -0.5 0.6875 0.224936 -0.5625 0.6875 0.207813 -0.625 0.6875 0.159054 -0.6875 0.6875 0.0860792 -0.75 0.6875 4.16334e-17 -0.8125 0.6875 -0.0860792 -0.875 0.6875 -0.159054 -0.9375 0.6875 -0.207813 -1 0.6875 -0.224936 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -4.16334e-17 -0.25 0.75 0 -0.3125 0.75 2.77556e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 8.32667e-17 -0.6875 0.75 4.16334e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -5.55112e-17 -0.875 0.75 -1.11022e-16 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.224936 -0.0625 0.8125 0.207813 -0.125 0.8125 0.159054 -0.1875 0.8125 0.0860792 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.0860792 -0.375 0.8125 -0.159054 -0.4375 0.8125 -0.207813 -0.5 0.8125 -0.224936 -0.5625 0.8125 -0.207813 -0.625 0.8125 -0.159054 -0.6875 0.8125 -0.0860792 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.0860792 -0.875 0.8125 0.159054 -0.9375 0.8125 0.207813 -1 0.8125 0.224936 - -0 0.875 0.415627 -0.0625 0.875 0.383989 -0.125 0.875 0.293893 -0.1875 0.875 0.159054 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.159054 -0.375 0.875 -0.293893 -0.4375 0.875 -0.383989 -0.5 0.875 -0.415627 -0.5625 0.875 -0.383989 -0.625 0.875 -0.293893 -0.6875 0.875 -0.159054 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.159054 -0.875 0.875 0.293893 -0.9375 0.875 0.383989 -1 0.875 0.415627 - -0 0.9375 0.543043 -0.0625 0.9375 0.501706 -0.125 0.9375 0.383989 -0.1875 0.9375 0.207813 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.207813 -0.375 0.9375 -0.383989 -0.4375 0.9375 -0.501706 -0.5 0.9375 -0.543043 -0.5625 0.9375 -0.501706 -0.625 0.9375 -0.383989 -0.6875 0.9375 -0.207813 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.207813 -0.875 0.9375 0.383989 -0.9375 0.9375 0.501706 -1 0.9375 0.543043 - -0 1 0.587785 -0.0625 1 0.543043 -0.125 1 0.415627 -0.1875 1 0.224936 -0.25 1 5.55112e-17 -0.3125 1 -0.224936 -0.375 1 -0.415627 -0.4375 1 -0.543043 -0.5 1 -0.587785 -0.5625 1 -0.543043 -0.625 1 -0.415627 -0.6875 1 -0.224936 -0.75 1 -1.11022e-16 -0.8125 1 0.224936 -0.875 1 0.415627 -0.9375 1 0.543043 -1 1 0.587785 - - -0 0 0.562083 -0.0625 0 0.519297 -0.125 0 0.397453 -0.1875 0 0.2151 -0.25 0 5.55112e-17 -0.3125 0 -0.2151 -0.375 0 -0.397453 -0.4375 0 -0.519297 -0.5 0 -0.562083 -0.5625 0 -0.519297 -0.625 0 -0.397453 -0.6875 0 -0.2151 -0.75 0 -1.11022e-16 -0.8125 0 0.2151 -0.875 0 0.397453 -0.9375 0 0.519297 -1 0 0.562083 - -0 0.0625 0.519297 -0.0625 0.0625 0.479768 -0.125 0.0625 0.367199 -0.1875 0.0625 0.198726 -0.25 0.0625 5.20417e-17 -0.3125 0.0625 -0.198726 -0.375 0.0625 -0.367199 -0.4375 0.0625 -0.479768 -0.5 0.0625 -0.519297 -0.5625 0.0625 -0.479768 -0.625 0.0625 -0.367199 -0.6875 0.0625 -0.198726 -0.75 0.0625 -1.14492e-16 -0.8125 0.0625 0.198726 -0.875 0.0625 0.367199 -0.9375 0.0625 0.479768 -1 0.0625 0.519297 - -0 0.125 0.397453 -0.0625 0.125 0.367199 -0.125 0.125 0.281042 -0.1875 0.125 0.152099 -0.25 0.125 2.08167e-17 -0.3125 0.125 -0.152099 -0.375 0.125 -0.281042 -0.4375 0.125 -0.367199 -0.5 0.125 -0.397453 -0.5625 0.125 -0.367199 -0.625 0.125 -0.281042 -0.6875 0.125 -0.152099 -0.75 0.125 -9.02056e-17 -0.8125 0.125 0.152099 -0.875 0.125 0.281042 -0.9375 0.125 0.367199 -1 0.125 0.397453 - -0 0.1875 0.2151 -0.0625 0.1875 0.198726 -0.125 0.1875 0.152099 -0.1875 0.1875 0.0823152 -0.25 0.1875 8.67362e-18 -0.3125 0.1875 -0.0823152 -0.375 0.1875 -0.152099 -0.4375 0.1875 -0.198726 -0.5 0.1875 -0.2151 -0.5625 0.1875 -0.198726 -0.625 0.1875 -0.152099 -0.6875 0.1875 -0.0823152 -0.75 0.1875 -4.68375e-17 -0.8125 0.1875 0.0823152 -0.875 0.1875 0.152099 -0.9375 0.1875 0.198726 -1 0.1875 0.2151 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 2.77556e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -2.77556e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -5.55112e-17 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 5.55112e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.2151 -0.0625 0.3125 -0.198726 -0.125 0.3125 -0.152099 -0.1875 0.3125 -0.0823152 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.0823152 -0.375 0.3125 0.152099 -0.4375 0.3125 0.198726 -0.5 0.3125 0.2151 -0.5625 0.3125 0.198726 -0.625 0.3125 0.152099 -0.6875 0.3125 0.0823152 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.0823152 -0.875 0.3125 -0.152099 -0.9375 0.3125 -0.198726 -1 0.3125 -0.2151 - -0 0.375 -0.397453 -0.0625 0.375 -0.367199 -0.125 0.375 -0.281042 -0.1875 0.375 -0.152099 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.152099 -0.375 0.375 0.281042 -0.4375 0.375 0.367199 -0.5 0.375 0.397453 -0.5625 0.375 0.367199 -0.625 0.375 0.281042 -0.6875 0.375 0.152099 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.152099 -0.875 0.375 -0.281042 -0.9375 0.375 -0.367199 -1 0.375 -0.397453 - -0 0.4375 -0.519297 -0.0625 0.4375 -0.479768 -0.125 0.4375 -0.367199 -0.1875 0.4375 -0.198726 -0.25 0.4375 -5.55112e-17 -0.3125 0.4375 0.198726 -0.375 0.4375 0.367199 -0.4375 0.4375 0.479768 -0.5 0.4375 0.519297 -0.5625 0.4375 0.479768 -0.625 0.4375 0.367199 -0.6875 0.4375 0.198726 -0.75 0.4375 1.11022e-16 -0.8125 0.4375 -0.198726 -0.875 0.4375 -0.367199 -0.9375 0.4375 -0.479768 -1 0.4375 -0.519297 - -0 0.5 -0.562083 -0.0625 0.5 -0.519297 -0.125 0.5 -0.397453 -0.1875 0.5 -0.2151 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.2151 -0.375 0.5 0.397453 -0.4375 0.5 0.519297 -0.5 0.5 0.562083 -0.5625 0.5 0.519297 -0.625 0.5 0.397453 -0.6875 0.5 0.2151 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.2151 -0.875 0.5 -0.397453 -0.9375 0.5 -0.519297 -1 0.5 -0.562083 - -0 0.5625 -0.519297 -0.0625 0.5625 -0.479768 -0.125 0.5625 -0.367199 -0.1875 0.5625 -0.198726 -0.25 0.5625 -5.55112e-17 -0.3125 0.5625 0.198726 -0.375 0.5625 0.367199 -0.4375 0.5625 0.479768 -0.5 0.5625 0.519297 -0.5625 0.5625 0.479768 -0.625 0.5625 0.367199 -0.6875 0.5625 0.198726 -0.75 0.5625 1.11022e-16 -0.8125 0.5625 -0.198726 -0.875 0.5625 -0.367199 -0.9375 0.5625 -0.479768 -1 0.5625 -0.519297 - -0 0.625 -0.397453 -0.0625 0.625 -0.367199 -0.125 0.625 -0.281042 -0.1875 0.625 -0.152099 -0.25 0.625 -2.77556e-17 -0.3125 0.625 0.152099 -0.375 0.625 0.281042 -0.4375 0.625 0.367199 -0.5 0.625 0.397453 -0.5625 0.625 0.367199 -0.625 0.625 0.281042 -0.6875 0.625 0.152099 -0.75 0.625 8.32667e-17 -0.8125 0.625 -0.152099 -0.875 0.625 -0.281042 -0.9375 0.625 -0.367199 -1 0.625 -0.397453 - -0 0.6875 -0.2151 -0.0625 0.6875 -0.198726 -0.125 0.6875 -0.152099 -0.1875 0.6875 -0.0823152 -0.25 0.6875 -1.56125e-17 -0.3125 0.6875 0.0823152 -0.375 0.6875 0.152099 -0.4375 0.6875 0.198726 -0.5 0.6875 0.2151 -0.5625 0.6875 0.198726 -0.625 0.6875 0.152099 -0.6875 0.6875 0.0823152 -0.75 0.6875 3.98986e-17 -0.8125 0.6875 -0.0823152 -0.875 0.6875 -0.152099 -0.9375 0.6875 -0.198726 -1 0.6875 -0.2151 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 0 -0.3125 0.75 4.16334e-17 -0.375 0.75 8.32667e-17 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 1.11022e-16 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.2151 -0.0625 0.8125 0.198726 -0.125 0.8125 0.152099 -0.1875 0.8125 0.0823152 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.0823152 -0.375 0.8125 -0.152099 -0.4375 0.8125 -0.198726 -0.5 0.8125 -0.2151 -0.5625 0.8125 -0.198726 -0.625 0.8125 -0.152099 -0.6875 0.8125 -0.0823152 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.0823152 -0.875 0.8125 0.152099 -0.9375 0.8125 0.198726 -1 0.8125 0.2151 - -0 0.875 0.397453 -0.0625 0.875 0.367199 -0.125 0.875 0.281042 -0.1875 0.875 0.152099 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.152099 -0.375 0.875 -0.281042 -0.4375 0.875 -0.367199 -0.5 0.875 -0.397453 -0.5625 0.875 -0.367199 -0.625 0.875 -0.281042 -0.6875 0.875 -0.152099 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.152099 -0.875 0.875 0.281042 -0.9375 0.875 0.367199 -1 0.875 0.397453 - -0 0.9375 0.519297 -0.0625 0.9375 0.479768 -0.125 0.9375 0.367199 -0.1875 0.9375 0.198726 -0.25 0.9375 5.55112e-17 -0.3125 0.9375 -0.198726 -0.375 0.9375 -0.367199 -0.4375 0.9375 -0.479768 -0.5 0.9375 -0.519297 -0.5625 0.9375 -0.479768 -0.625 0.9375 -0.367199 -0.6875 0.9375 -0.198726 -0.75 0.9375 -1.11022e-16 -0.8125 0.9375 0.198726 -0.875 0.9375 0.367199 -0.9375 0.9375 0.479768 -1 0.9375 0.519297 - -0 1 0.562083 -0.0625 1 0.519297 -0.125 1 0.397453 -0.1875 1 0.2151 -0.25 1 5.55112e-17 -0.3125 1 -0.2151 -0.375 1 -0.397453 -0.4375 1 -0.519297 -0.5 1 -0.562083 -0.5625 1 -0.519297 -0.625 1 -0.397453 -0.6875 1 -0.2151 -0.75 1 -1.11022e-16 -0.8125 1 0.2151 -0.875 1 0.397453 -0.9375 1 0.519297 -1 1 0.562083 - - -0 0 0.535827 -0.0625 0 0.495039 -0.125 0 0.378887 -0.1875 0 0.205052 -0.25 0 5.55112e-17 -0.3125 0 -0.205052 -0.375 0 -0.378887 -0.4375 0 -0.495039 -0.5 0 -0.535827 -0.5625 0 -0.495039 -0.625 0 -0.378887 -0.6875 0 -0.205052 -0.75 0 -1.11022e-16 -0.8125 0 0.205052 -0.875 0 0.378887 -0.9375 0 0.495039 -1 0 0.535827 - -0 0.0625 0.495039 -0.0625 0.0625 0.457357 -0.125 0.0625 0.350046 -0.1875 0.0625 0.189443 -0.25 0.0625 2.42861e-17 -0.3125 0.0625 -0.189443 -0.375 0.0625 -0.350046 -0.4375 0.0625 -0.457357 -0.5 0.0625 -0.495039 -0.5625 0.0625 -0.457357 -0.625 0.0625 -0.350046 -0.6875 0.0625 -0.189443 -0.75 0.0625 -8.67362e-17 -0.8125 0.0625 0.189443 -0.875 0.0625 0.350046 -0.9375 0.0625 0.457357 -1 0.0625 0.495039 - -0 0.125 0.378887 -0.0625 0.125 0.350046 -0.125 0.125 0.267913 -0.1875 0.125 0.144994 -0.25 0.125 2.08167e-17 -0.3125 0.125 -0.144994 -0.375 0.125 -0.267913 -0.4375 0.125 -0.350046 -0.5 0.125 -0.378887 -0.5625 0.125 -0.350046 -0.625 0.125 -0.267913 -0.6875 0.125 -0.144994 -0.75 0.125 -9.02056e-17 -0.8125 0.125 0.144994 -0.875 0.125 0.267913 -0.9375 0.125 0.350046 -1 0.125 0.378887 - -0 0.1875 0.205052 -0.0625 0.1875 0.189443 -0.125 0.1875 0.144994 -0.1875 0.1875 0.07847 -0.25 0.1875 9.54098e-18 -0.3125 0.1875 -0.07847 -0.375 0.1875 -0.144994 -0.4375 0.1875 -0.189443 -0.5 0.1875 -0.205052 -0.5625 0.1875 -0.189443 -0.625 0.1875 -0.144994 -0.6875 0.1875 -0.07847 -0.75 0.1875 -4.59702e-17 -0.8125 0.1875 0.07847 -0.875 0.1875 0.144994 -0.9375 0.1875 0.189443 -1 0.1875 0.205052 - -0 0.25 5.55112e-17 -0.0625 0.25 2.77556e-17 -0.125 0.25 2.77556e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 -2.77556e-17 -0.4375 0.25 -2.77556e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -8.32667e-17 -0.625 0.25 -5.55112e-17 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 5.55112e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.205052 -0.0625 0.3125 -0.189443 -0.125 0.3125 -0.144994 -0.1875 0.3125 -0.07847 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.07847 -0.375 0.3125 0.144994 -0.4375 0.3125 0.189443 -0.5 0.3125 0.205052 -0.5625 0.3125 0.189443 -0.625 0.3125 0.144994 -0.6875 0.3125 0.07847 -0.75 0.3125 4.16334e-17 -0.8125 0.3125 -0.07847 -0.875 0.3125 -0.144994 -0.9375 0.3125 -0.189443 -1 0.3125 -0.205052 - -0 0.375 -0.378887 -0.0625 0.375 -0.350046 -0.125 0.375 -0.267913 -0.1875 0.375 -0.144994 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.144994 -0.375 0.375 0.267913 -0.4375 0.375 0.350046 -0.5 0.375 0.378887 -0.5625 0.375 0.350046 -0.625 0.375 0.267913 -0.6875 0.375 0.144994 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.144994 -0.875 0.375 -0.267913 -0.9375 0.375 -0.350046 -1 0.375 -0.378887 - -0 0.4375 -0.495039 -0.0625 0.4375 -0.457357 -0.125 0.4375 -0.350046 -0.1875 0.4375 -0.189443 -0.25 0.4375 -2.77556e-17 -0.3125 0.4375 0.189443 -0.375 0.4375 0.350046 -0.4375 0.4375 0.457357 -0.5 0.4375 0.495039 -0.5625 0.4375 0.457357 -0.625 0.4375 0.350046 -0.6875 0.4375 0.189443 -0.75 0.4375 8.32667e-17 -0.8125 0.4375 -0.189443 -0.875 0.4375 -0.350046 -0.9375 0.4375 -0.457357 -1 0.4375 -0.495039 - -0 0.5 -0.535827 -0.0625 0.5 -0.495039 -0.125 0.5 -0.378887 -0.1875 0.5 -0.205052 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.205052 -0.375 0.5 0.378887 -0.4375 0.5 0.495039 -0.5 0.5 0.535827 -0.5625 0.5 0.495039 -0.625 0.5 0.378887 -0.6875 0.5 0.205052 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.205052 -0.875 0.5 -0.378887 -0.9375 0.5 -0.495039 -1 0.5 -0.535827 - -0 0.5625 -0.495039 -0.0625 0.5625 -0.457357 -0.125 0.5625 -0.350046 -0.1875 0.5625 -0.189443 -0.25 0.5625 -2.77556e-17 -0.3125 0.5625 0.189443 -0.375 0.5625 0.350046 -0.4375 0.5625 0.457357 -0.5 0.5625 0.495039 -0.5625 0.5625 0.457357 -0.625 0.5625 0.350046 -0.6875 0.5625 0.189443 -0.75 0.5625 8.32667e-17 -0.8125 0.5625 -0.189443 -0.875 0.5625 -0.350046 -0.9375 0.5625 -0.457357 -1 0.5625 -0.495039 - -0 0.625 -0.378887 -0.0625 0.625 -0.350046 -0.125 0.625 -0.267913 -0.1875 0.625 -0.144994 -0.25 0.625 -2.77556e-17 -0.3125 0.625 0.144994 -0.375 0.625 0.267913 -0.4375 0.625 0.350046 -0.5 0.625 0.378887 -0.5625 0.625 0.350046 -0.625 0.625 0.267913 -0.6875 0.625 0.144994 -0.75 0.625 8.32667e-17 -0.8125 0.625 -0.144994 -0.875 0.625 -0.267913 -0.9375 0.625 -0.350046 -1 0.625 -0.378887 - -0 0.6875 -0.205052 -0.0625 0.6875 -0.189443 -0.125 0.6875 -0.144994 -0.1875 0.6875 -0.07847 -0.25 0.6875 -1.38778e-17 -0.3125 0.6875 0.07847 -0.375 0.6875 0.144994 -0.4375 0.6875 0.189443 -0.5 0.6875 0.205052 -0.5625 0.6875 0.189443 -0.625 0.6875 0.144994 -0.6875 0.6875 0.07847 -0.75 0.6875 4.16334e-17 -0.8125 0.6875 -0.07847 -0.875 0.6875 -0.144994 -0.9375 0.6875 -0.189443 -1 0.6875 -0.205052 - -0 0.75 -1.11022e-16 -0.0625 0.75 -1.38778e-16 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 0 -0.3125 0.75 5.55112e-17 -0.375 0.75 8.32667e-17 -0.4375 0.75 1.38778e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 8.32667e-17 -0.625 0.75 5.55112e-17 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.205052 -0.0625 0.8125 0.189443 -0.125 0.8125 0.144994 -0.1875 0.8125 0.07847 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.07847 -0.375 0.8125 -0.144994 -0.4375 0.8125 -0.189443 -0.5 0.8125 -0.205052 -0.5625 0.8125 -0.189443 -0.625 0.8125 -0.144994 -0.6875 0.8125 -0.07847 -0.75 0.8125 -4.16334e-17 -0.8125 0.8125 0.07847 -0.875 0.8125 0.144994 -0.9375 0.8125 0.189443 -1 0.8125 0.205052 - -0 0.875 0.378887 -0.0625 0.875 0.350046 -0.125 0.875 0.267913 -0.1875 0.875 0.144994 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.144994 -0.375 0.875 -0.267913 -0.4375 0.875 -0.350046 -0.5 0.875 -0.378887 -0.5625 0.875 -0.350046 -0.625 0.875 -0.267913 -0.6875 0.875 -0.144994 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.144994 -0.875 0.875 0.267913 -0.9375 0.875 0.350046 -1 0.875 0.378887 - -0 0.9375 0.495039 -0.0625 0.9375 0.457357 -0.125 0.9375 0.350046 -0.1875 0.9375 0.189443 -0.25 0.9375 2.77556e-17 -0.3125 0.9375 -0.189443 -0.375 0.9375 -0.350046 -0.4375 0.9375 -0.457357 -0.5 0.9375 -0.495039 -0.5625 0.9375 -0.457357 -0.625 0.9375 -0.350046 -0.6875 0.9375 -0.189443 -0.75 0.9375 -8.32667e-17 -0.8125 0.9375 0.189443 -0.875 0.9375 0.350046 -0.9375 0.9375 0.457357 -1 0.9375 0.495039 - -0 1 0.535827 -0.0625 1 0.495039 -0.125 1 0.378887 -0.1875 1 0.205052 -0.25 1 5.55112e-17 -0.3125 1 -0.205052 -0.375 1 -0.378887 -0.4375 1 -0.495039 -0.5 1 -0.535827 -0.5625 1 -0.495039 -0.625 1 -0.378887 -0.6875 1 -0.205052 -0.75 1 -1.11022e-16 -0.8125 1 0.205052 -0.875 1 0.378887 -0.9375 1 0.495039 -1 1 0.535827 - - -0 0 0.509041 -0.0625 0 0.470293 -0.125 0 0.359947 -0.1875 0 0.194802 -0.25 0 0 -0.3125 0 -0.194802 -0.375 0 -0.359947 -0.4375 0 -0.470293 -0.5 0 -0.509041 -0.5625 0 -0.470293 -0.625 0 -0.359947 -0.6875 0 -0.194802 -0.75 0 -1.66533e-16 -0.8125 0 0.194802 -0.875 0 0.359947 -0.9375 0 0.470293 -1 0 0.509041 - -0 0.0625 0.470293 -0.0625 0.0625 0.434494 -0.125 0.0625 0.332547 -0.1875 0.0625 0.179973 -0.25 0.0625 -1.73472e-17 -0.3125 0.0625 -0.179973 -0.375 0.0625 -0.332547 -0.4375 0.0625 -0.434494 -0.5 0.0625 -0.470293 -0.5625 0.0625 -0.434494 -0.625 0.0625 -0.332547 -0.6875 0.0625 -0.179973 -0.75 0.0625 -1.2837e-16 -0.8125 0.0625 0.179973 -0.875 0.0625 0.332547 -0.9375 0.0625 0.434494 -1 0.0625 0.470293 - -0 0.125 0.359947 -0.0625 0.125 0.332547 -0.125 0.125 0.254521 -0.1875 0.125 0.137746 -0.25 0.125 -6.93889e-18 -0.3125 0.125 -0.137746 -0.375 0.125 -0.254521 -0.4375 0.125 -0.332547 -0.5 0.125 -0.359947 -0.5625 0.125 -0.332547 -0.625 0.125 -0.254521 -0.6875 0.125 -0.137746 -0.75 0.125 -9.02056e-17 -0.8125 0.125 0.137746 -0.875 0.125 0.254521 -0.9375 0.125 0.332547 -1 0.125 0.359947 - -0 0.1875 0.194802 -0.0625 0.1875 0.179973 -0.125 0.1875 0.137746 -0.1875 0.1875 0.0745474 -0.25 0.1875 -4.33681e-18 -0.3125 0.1875 -0.0745474 -0.375 0.1875 -0.137746 -0.4375 0.1875 -0.179973 -0.5 0.1875 -0.194802 -0.5625 0.1875 -0.179973 -0.625 0.1875 -0.137746 -0.6875 0.1875 -0.0745474 -0.75 0.1875 -5.9848e-17 -0.8125 0.1875 0.0745474 -0.875 0.1875 0.137746 -0.9375 0.1875 0.179973 -1 0.1875 0.194802 - -0 0.25 0 -0.0625 0.25 5.55112e-17 -0.125 0.25 5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -2.77556e-17 -0.4375 0.25 -2.77556e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 -5.55112e-17 -0.625 0.25 -2.77556e-17 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 2.77556e-17 -0.875 0.25 5.55112e-17 -0.9375 0.25 2.77556e-17 -1 0.25 0 - -0 0.3125 -0.194802 -0.0625 0.3125 -0.179973 -0.125 0.3125 -0.137746 -0.1875 0.3125 -0.0745474 -0.25 0.3125 0 -0.3125 0.3125 0.0745474 -0.375 0.3125 0.137746 -0.4375 0.3125 0.179973 -0.5 0.3125 0.194802 -0.5625 0.3125 0.179973 -0.625 0.3125 0.137746 -0.6875 0.3125 0.0745474 -0.75 0.3125 5.55112e-17 -0.8125 0.3125 -0.0745474 -0.875 0.3125 -0.137746 -0.9375 0.3125 -0.179973 -1 0.3125 -0.194802 - -0 0.375 -0.359947 -0.0625 0.375 -0.332547 -0.125 0.375 -0.254521 -0.1875 0.375 -0.137746 -0.25 0.375 0 -0.3125 0.375 0.137746 -0.375 0.375 0.254521 -0.4375 0.375 0.332547 -0.5 0.375 0.359947 -0.5625 0.375 0.332547 -0.625 0.375 0.254521 -0.6875 0.375 0.137746 -0.75 0.375 8.32667e-17 -0.8125 0.375 -0.137746 -0.875 0.375 -0.254521 -0.9375 0.375 -0.332547 -1 0.375 -0.359947 - -0 0.4375 -0.470293 -0.0625 0.4375 -0.434494 -0.125 0.4375 -0.332547 -0.1875 0.4375 -0.179973 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 0.179973 -0.375 0.4375 0.332547 -0.4375 0.4375 0.434494 -0.5 0.4375 0.470293 -0.5625 0.4375 0.434494 -0.625 0.4375 0.332547 -0.6875 0.4375 0.179973 -0.75 0.4375 1.249e-16 -0.8125 0.4375 -0.179973 -0.875 0.4375 -0.332547 -0.9375 0.4375 -0.434494 -1 0.4375 -0.470293 - -0 0.5 -0.509041 -0.0625 0.5 -0.470293 -0.125 0.5 -0.359947 -0.1875 0.5 -0.194802 -0.25 0.5 0 -0.3125 0.5 0.194802 -0.375 0.5 0.359947 -0.4375 0.5 0.470293 -0.5 0.5 0.509041 -0.5625 0.5 0.470293 -0.625 0.5 0.359947 -0.6875 0.5 0.194802 -0.75 0.5 1.66533e-16 -0.8125 0.5 -0.194802 -0.875 0.5 -0.359947 -0.9375 0.5 -0.470293 -1 0.5 -0.509041 - -0 0.5625 -0.470293 -0.0625 0.5625 -0.434494 -0.125 0.5625 -0.332547 -0.1875 0.5625 -0.179973 -0.25 0.5625 1.04083e-17 -0.3125 0.5625 0.179973 -0.375 0.5625 0.332547 -0.4375 0.5625 0.434494 -0.5 0.5625 0.470293 -0.5625 0.5625 0.434494 -0.625 0.5625 0.332547 -0.6875 0.5625 0.179973 -0.75 0.5625 1.21431e-16 -0.8125 0.5625 -0.179973 -0.875 0.5625 -0.332547 -0.9375 0.5625 -0.434494 -1 0.5625 -0.470293 - -0 0.625 -0.359947 -0.0625 0.625 -0.332547 -0.125 0.625 -0.254521 -0.1875 0.625 -0.137746 -0.25 0.625 -6.93889e-18 -0.3125 0.625 0.137746 -0.375 0.625 0.254521 -0.4375 0.625 0.332547 -0.5 0.625 0.359947 -0.5625 0.625 0.332547 -0.625 0.625 0.254521 -0.6875 0.625 0.137746 -0.75 0.625 7.63278e-17 -0.8125 0.625 -0.137746 -0.875 0.625 -0.254521 -0.9375 0.625 -0.332547 -1 0.625 -0.359947 - -0 0.6875 -0.194802 -0.0625 0.6875 -0.179973 -0.125 0.6875 -0.137746 -0.1875 0.6875 -0.0745474 -0.25 0.6875 -4.33681e-18 -0.3125 0.6875 0.0745474 -0.375 0.6875 0.137746 -0.4375 0.6875 0.179973 -0.5 0.6875 0.194802 -0.5625 0.6875 0.179973 -0.625 0.6875 0.137746 -0.6875 0.6875 0.0745474 -0.75 0.6875 5.11743e-17 -0.8125 0.6875 -0.0745474 -0.875 0.6875 -0.137746 -0.9375 0.6875 -0.179973 -1 0.6875 -0.194802 - -0 0.75 -1.66533e-16 -0.0625 0.75 -1.11022e-16 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -5.55112e-17 -0.25 0.75 0 -0.3125 0.75 4.16334e-17 -0.375 0.75 8.32667e-17 -0.4375 0.75 1.38778e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 8.32667e-17 -0.6875 0.75 5.55112e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -1.38778e-16 -1 0.75 -1.66533e-16 - -0 0.8125 0.194802 -0.0625 0.8125 0.179973 -0.125 0.8125 0.137746 -0.1875 0.8125 0.0745474 -0.25 0.8125 0 -0.3125 0.8125 -0.0745474 -0.375 0.8125 -0.137746 -0.4375 0.8125 -0.179973 -0.5 0.8125 -0.194802 -0.5625 0.8125 -0.179973 -0.625 0.8125 -0.137746 -0.6875 0.8125 -0.0745474 -0.75 0.8125 -5.55112e-17 -0.8125 0.8125 0.0745474 -0.875 0.8125 0.137746 -0.9375 0.8125 0.179973 -1 0.8125 0.194802 - -0 0.875 0.359947 -0.0625 0.875 0.332547 -0.125 0.875 0.254521 -0.1875 0.875 0.137746 -0.25 0.875 0 -0.3125 0.875 -0.137746 -0.375 0.875 -0.254521 -0.4375 0.875 -0.332547 -0.5 0.875 -0.359947 -0.5625 0.875 -0.332547 -0.625 0.875 -0.254521 -0.6875 0.875 -0.137746 -0.75 0.875 -8.32667e-17 -0.8125 0.875 0.137746 -0.875 0.875 0.254521 -0.9375 0.875 0.332547 -1 0.875 0.359947 - -0 0.9375 0.470293 -0.0625 0.9375 0.434494 -0.125 0.9375 0.332547 -0.1875 0.9375 0.179973 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 -0.179973 -0.375 0.9375 -0.332547 -0.4375 0.9375 -0.434494 -0.5 0.9375 -0.470293 -0.5625 0.9375 -0.434494 -0.625 0.9375 -0.332547 -0.6875 0.9375 -0.179973 -0.75 0.9375 -1.249e-16 -0.8125 0.9375 0.179973 -0.875 0.9375 0.332547 -0.9375 0.9375 0.434494 -1 0.9375 0.470293 - -0 1 0.509041 -0.0625 1 0.470293 -0.125 1 0.359947 -0.1875 1 0.194802 -0.25 1 0 -0.3125 1 -0.194802 -0.375 1 -0.359947 -0.4375 1 -0.470293 -0.5 1 -0.509041 -0.5625 1 -0.470293 -0.625 1 -0.359947 -0.6875 1 -0.194802 -0.75 1 -1.66533e-16 -0.8125 1 0.194802 -0.875 1 0.359947 -0.9375 1 0.470293 -1 1 0.509041 - - -0 0 0.481754 -0.0625 0 0.445082 -0.125 0 0.340651 -0.1875 0 0.184359 -0.25 0 0 -0.3125 0 -0.184359 -0.375 0 -0.340651 -0.4375 0 -0.445082 -0.5 0 -0.481754 -0.5625 0 -0.445082 -0.625 0 -0.340651 -0.6875 0 -0.184359 -0.75 0 -1.11022e-16 -0.8125 0 0.184359 -0.875 0 0.340651 -0.9375 0 0.445082 -1 0 0.481754 - -0 0.0625 0.445082 -0.0625 0.0625 0.411202 -0.125 0.0625 0.314721 -0.1875 0.0625 0.170326 -0.25 0.0625 1.04083e-17 -0.3125 0.0625 -0.170326 -0.375 0.0625 -0.314721 -0.4375 0.0625 -0.411202 -0.5 0.0625 -0.445082 -0.5625 0.0625 -0.411202 -0.625 0.0625 -0.314721 -0.6875 0.0625 -0.170326 -0.75 0.0625 -1.00614e-16 -0.8125 0.0625 0.170326 -0.875 0.0625 0.314721 -0.9375 0.0625 0.411202 -1 0.0625 0.445082 - -0 0.125 0.340651 -0.0625 0.125 0.314721 -0.125 0.125 0.240877 -0.1875 0.125 0.130362 -0.25 0.125 2.08167e-17 -0.3125 0.125 -0.130362 -0.375 0.125 -0.240877 -0.4375 0.125 -0.314721 -0.5 0.125 -0.340651 -0.5625 0.125 -0.314721 -0.625 0.125 -0.240877 -0.6875 0.125 -0.130362 -0.75 0.125 -6.245e-17 -0.8125 0.125 0.130362 -0.875 0.125 0.240877 -0.9375 0.125 0.314721 -1 0.125 0.340651 - -0 0.1875 0.184359 -0.0625 0.1875 0.170326 -0.125 0.1875 0.130362 -0.1875 0.1875 0.0705512 -0.25 0.1875 9.54098e-18 -0.3125 0.1875 -0.0705512 -0.375 0.1875 -0.130362 -0.4375 0.1875 -0.170326 -0.5 0.1875 -0.184359 -0.5625 0.1875 -0.170326 -0.625 0.1875 -0.130362 -0.6875 0.1875 -0.0705512 -0.75 0.1875 -3.20924e-17 -0.8125 0.1875 0.0705512 -0.875 0.1875 0.130362 -0.9375 0.1875 0.170326 -1 0.1875 0.184359 - -0 0.25 0 -0.0625 0.25 2.77556e-17 -0.125 0.25 0 -0.1875 0.25 1.38778e-17 -0.25 0.25 3.08149e-33 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -2.77556e-17 -0.4375 0.25 -2.77556e-17 -0.5 0.25 -5.55112e-17 -0.5625 0.25 0 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 5.55112e-17 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 -0.184359 -0.0625 0.3125 -0.170326 -0.125 0.3125 -0.130362 -0.1875 0.3125 -0.0705512 -0.25 0.3125 -6.93889e-18 -0.3125 0.3125 0.0705512 -0.375 0.3125 0.130362 -0.4375 0.3125 0.170326 -0.5 0.3125 0.184359 -0.5625 0.3125 0.170326 -0.625 0.3125 0.130362 -0.6875 0.3125 0.0705512 -0.75 0.3125 3.46945e-17 -0.8125 0.3125 -0.0705512 -0.875 0.3125 -0.130362 -0.9375 0.3125 -0.170326 -1 0.3125 -0.184359 - -0 0.375 -0.340651 -0.0625 0.375 -0.314721 -0.125 0.375 -0.240877 -0.1875 0.375 -0.130362 -0.25 0.375 -1.38778e-17 -0.3125 0.375 0.130362 -0.375 0.375 0.240877 -0.4375 0.375 0.314721 -0.5 0.375 0.340651 -0.5625 0.375 0.314721 -0.625 0.375 0.240877 -0.6875 0.375 0.130362 -0.75 0.375 6.93889e-17 -0.8125 0.375 -0.130362 -0.875 0.375 -0.240877 -0.9375 0.375 -0.314721 -1 0.375 -0.340651 - -0 0.4375 -0.445082 -0.0625 0.4375 -0.411202 -0.125 0.4375 -0.314721 -0.1875 0.4375 -0.170326 -0.25 0.4375 -6.93889e-18 -0.3125 0.4375 0.170326 -0.375 0.4375 0.314721 -0.4375 0.4375 0.411202 -0.5 0.4375 0.445082 -0.5625 0.4375 0.411202 -0.625 0.4375 0.314721 -0.6875 0.4375 0.170326 -0.75 0.4375 1.04083e-16 -0.8125 0.4375 -0.170326 -0.875 0.4375 -0.314721 -0.9375 0.4375 -0.411202 -1 0.4375 -0.445082 - -0 0.5 -0.481754 -0.0625 0.5 -0.445082 -0.125 0.5 -0.340651 -0.1875 0.5 -0.184359 -0.25 0.5 0 -0.3125 0.5 0.184359 -0.375 0.5 0.340651 -0.4375 0.5 0.445082 -0.5 0.5 0.481754 -0.5625 0.5 0.445082 -0.625 0.5 0.340651 -0.6875 0.5 0.184359 -0.75 0.5 1.11022e-16 -0.8125 0.5 -0.184359 -0.875 0.5 -0.340651 -0.9375 0.5 -0.445082 -1 0.5 -0.481754 - -0 0.5625 -0.445082 -0.0625 0.5625 -0.411202 -0.125 0.5625 -0.314721 -0.1875 0.5625 -0.170326 -0.25 0.5625 -3.46945e-18 -0.3125 0.5625 0.170326 -0.375 0.5625 0.314721 -0.4375 0.5625 0.411202 -0.5 0.5625 0.445082 -0.5625 0.5625 0.411202 -0.625 0.5625 0.314721 -0.6875 0.5625 0.170326 -0.75 0.5625 1.07553e-16 -0.8125 0.5625 -0.170326 -0.875 0.5625 -0.314721 -0.9375 0.5625 -0.411202 -1 0.5625 -0.445082 - -0 0.625 -0.340651 -0.0625 0.625 -0.314721 -0.125 0.625 -0.240877 -0.1875 0.625 -0.130362 -0.25 0.625 -6.93889e-18 -0.3125 0.625 0.130362 -0.375 0.625 0.240877 -0.4375 0.625 0.314721 -0.5 0.625 0.340651 -0.5625 0.625 0.314721 -0.625 0.625 0.240877 -0.6875 0.625 0.130362 -0.75 0.625 7.63278e-17 -0.8125 0.625 -0.130362 -0.875 0.625 -0.240877 -0.9375 0.625 -0.314721 -1 0.625 -0.340651 - -0 0.6875 -0.184359 -0.0625 0.6875 -0.170326 -0.125 0.6875 -0.130362 -0.1875 0.6875 -0.0705512 -0.25 0.6875 -3.46945e-18 -0.3125 0.6875 0.0705512 -0.375 0.6875 0.130362 -0.4375 0.6875 0.170326 -0.5 0.6875 0.184359 -0.5625 0.6875 0.170326 -0.625 0.6875 0.130362 -0.6875 0.6875 0.0705512 -0.75 0.6875 3.81639e-17 -0.8125 0.6875 -0.0705512 -0.875 0.6875 -0.130362 -0.9375 0.6875 -0.170326 -1 0.6875 -0.184359 - -0 0.75 -1.11022e-16 -0.0625 0.75 -8.32667e-17 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -6.16298e-33 -0.3125 0.75 2.77556e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 8.32667e-17 -0.5 0.75 5.55112e-17 -0.5625 0.75 1.11022e-16 -0.625 0.75 8.32667e-17 -0.6875 0.75 4.16334e-17 -0.75 0.75 2.46519e-32 -0.8125 0.75 -4.16334e-17 -0.875 0.75 -2.77556e-17 -0.9375 0.75 -1.11022e-16 -1 0.75 -1.11022e-16 - -0 0.8125 0.184359 -0.0625 0.8125 0.170326 -0.125 0.8125 0.130362 -0.1875 0.8125 0.0705512 -0.25 0.8125 6.93889e-18 -0.3125 0.8125 -0.0705512 -0.375 0.8125 -0.130362 -0.4375 0.8125 -0.170326 -0.5 0.8125 -0.184359 -0.5625 0.8125 -0.170326 -0.625 0.8125 -0.130362 -0.6875 0.8125 -0.0705512 -0.75 0.8125 -3.46945e-17 -0.8125 0.8125 0.0705512 -0.875 0.8125 0.130362 -0.9375 0.8125 0.170326 -1 0.8125 0.184359 - -0 0.875 0.340651 -0.0625 0.875 0.314721 -0.125 0.875 0.240877 -0.1875 0.875 0.130362 -0.25 0.875 1.38778e-17 -0.3125 0.875 -0.130362 -0.375 0.875 -0.240877 -0.4375 0.875 -0.314721 -0.5 0.875 -0.340651 -0.5625 0.875 -0.314721 -0.625 0.875 -0.240877 -0.6875 0.875 -0.130362 -0.75 0.875 -6.93889e-17 -0.8125 0.875 0.130362 -0.875 0.875 0.240877 -0.9375 0.875 0.314721 -1 0.875 0.340651 - -0 0.9375 0.445082 -0.0625 0.9375 0.411202 -0.125 0.9375 0.314721 -0.1875 0.9375 0.170326 -0.25 0.9375 6.93889e-18 -0.3125 0.9375 -0.170326 -0.375 0.9375 -0.314721 -0.4375 0.9375 -0.411202 -0.5 0.9375 -0.445082 -0.5625 0.9375 -0.411202 -0.625 0.9375 -0.314721 -0.6875 0.9375 -0.170326 -0.75 0.9375 -1.04083e-16 -0.8125 0.9375 0.170326 -0.875 0.9375 0.314721 -0.9375 0.9375 0.411202 -1 0.9375 0.445082 - -0 1 0.481754 -0.0625 1 0.445082 -0.125 1 0.340651 -0.1875 1 0.184359 -0.25 1 0 -0.3125 1 -0.184359 -0.375 1 -0.340651 -0.4375 1 -0.445082 -0.5 1 -0.481754 -0.5625 1 -0.445082 -0.625 1 -0.340651 -0.6875 1 -0.184359 -0.75 1 -1.11022e-16 -0.8125 1 0.184359 -0.875 1 0.340651 -0.9375 1 0.445082 -1 1 0.481754 - - -0 0 0.45399 -0.0625 0 0.419433 -0.125 0 0.32102 -0.1875 0 0.173735 -0.25 0 5.55112e-17 -0.3125 0 -0.173735 -0.375 0 -0.32102 -0.4375 0 -0.419433 -0.5 0 -0.45399 -0.5625 0 -0.419433 -0.625 0 -0.32102 -0.6875 0 -0.173735 -0.75 0 -5.55112e-17 -0.8125 0 0.173735 -0.875 0 0.32102 -0.9375 0 0.419433 -1 0 0.45399 - -0 0.0625 0.419433 -0.0625 0.0625 0.387505 -0.125 0.0625 0.296584 -0.1875 0.0625 0.16051 -0.25 0.0625 5.20417e-17 -0.3125 0.0625 -0.16051 -0.375 0.0625 -0.296584 -0.4375 0.0625 -0.387505 -0.5 0.0625 -0.419433 -0.5625 0.0625 -0.387505 -0.625 0.0625 -0.296584 -0.6875 0.0625 -0.16051 -0.75 0.0625 -5.89806e-17 -0.8125 0.0625 0.16051 -0.875 0.0625 0.296584 -0.9375 0.0625 0.387505 -1 0.0625 0.419433 - -0 0.125 0.32102 -0.0625 0.125 0.296584 -0.125 0.125 0.226995 -0.1875 0.125 0.122849 -0.25 0.125 4.85723e-17 -0.3125 0.125 -0.122849 -0.375 0.125 -0.226995 -0.4375 0.125 -0.296584 -0.5 0.125 -0.32102 -0.5625 0.125 -0.296584 -0.625 0.125 -0.226995 -0.6875 0.125 -0.122849 -0.75 0.125 -3.46945e-17 -0.8125 0.125 0.122849 -0.875 0.125 0.226995 -0.9375 0.125 0.296584 -1 0.125 0.32102 - -0 0.1875 0.173735 -0.0625 0.1875 0.16051 -0.125 0.1875 0.122849 -0.1875 0.1875 0.0664854 -0.25 0.1875 2.42861e-17 -0.3125 0.1875 -0.0664854 -0.375 0.1875 -0.122849 -0.4375 0.1875 -0.16051 -0.5 0.1875 -0.173735 -0.5625 0.1875 -0.16051 -0.625 0.1875 -0.122849 -0.6875 0.1875 -0.0664854 -0.75 0.1875 -1.73472e-17 -0.8125 0.1875 0.0664854 -0.875 0.1875 0.122849 -0.9375 0.1875 0.16051 -1 0.1875 0.173735 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 2.77556e-17 -0.1875 0.25 2.77556e-17 -0.25 0.25 0 -0.3125 0.25 -2.77556e-17 -0.375 0.25 -2.77556e-17 -0.4375 0.25 -2.77556e-17 -0.5 0.25 0 -0.5625 0.25 0 -0.625 0.25 -2.77556e-17 -0.6875 0.25 -2.77556e-17 -0.75 0.25 -6.16298e-33 -0.8125 0.25 0 -0.875 0.25 2.77556e-17 -0.9375 0.25 2.77556e-17 -1 0.25 5.55112e-17 - -0 0.3125 -0.173735 -0.0625 0.3125 -0.16051 -0.125 0.3125 -0.122849 -0.1875 0.3125 -0.0664854 -0.25 0.3125 -2.08167e-17 -0.3125 0.3125 0.0664854 -0.375 0.3125 0.122849 -0.4375 0.3125 0.16051 -0.5 0.3125 0.173735 -0.5625 0.3125 0.16051 -0.625 0.3125 0.122849 -0.6875 0.3125 0.0664854 -0.75 0.3125 2.08167e-17 -0.8125 0.3125 -0.0664854 -0.875 0.3125 -0.122849 -0.9375 0.3125 -0.16051 -1 0.3125 -0.173735 - -0 0.375 -0.32102 -0.0625 0.375 -0.296584 -0.125 0.375 -0.226995 -0.1875 0.375 -0.122849 -0.25 0.375 -4.16334e-17 -0.3125 0.375 0.122849 -0.375 0.375 0.226995 -0.4375 0.375 0.296584 -0.5 0.375 0.32102 -0.5625 0.375 0.296584 -0.625 0.375 0.226995 -0.6875 0.375 0.122849 -0.75 0.375 4.16334e-17 -0.8125 0.375 -0.122849 -0.875 0.375 -0.226995 -0.9375 0.375 -0.296584 -1 0.375 -0.32102 - -0 0.4375 -0.419433 -0.0625 0.4375 -0.387505 -0.125 0.4375 -0.296584 -0.1875 0.4375 -0.16051 -0.25 0.4375 -4.85723e-17 -0.3125 0.4375 0.16051 -0.375 0.4375 0.296584 -0.4375 0.4375 0.387505 -0.5 0.4375 0.419433 -0.5625 0.4375 0.387505 -0.625 0.4375 0.296584 -0.6875 0.4375 0.16051 -0.75 0.4375 6.245e-17 -0.8125 0.4375 -0.16051 -0.875 0.4375 -0.296584 -0.9375 0.4375 -0.387505 -1 0.4375 -0.419433 - -0 0.5 -0.45399 -0.0625 0.5 -0.419433 -0.125 0.5 -0.32102 -0.1875 0.5 -0.173735 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.173735 -0.375 0.5 0.32102 -0.4375 0.5 0.419433 -0.5 0.5 0.45399 -0.5625 0.5 0.419433 -0.625 0.5 0.32102 -0.6875 0.5 0.173735 -0.75 0.5 5.55112e-17 -0.8125 0.5 -0.173735 -0.875 0.5 -0.32102 -0.9375 0.5 -0.419433 -1 0.5 -0.45399 - -0 0.5625 -0.419433 -0.0625 0.5625 -0.387505 -0.125 0.5625 -0.296584 -0.1875 0.5625 -0.16051 -0.25 0.5625 -4.51028e-17 -0.3125 0.5625 0.16051 -0.375 0.5625 0.296584 -0.4375 0.5625 0.387505 -0.5 0.5625 0.419433 -0.5625 0.5625 0.387505 -0.625 0.5625 0.296584 -0.6875 0.5625 0.16051 -0.75 0.5625 6.59195e-17 -0.8125 0.5625 -0.16051 -0.875 0.5625 -0.296584 -0.9375 0.5625 -0.387505 -1 0.5625 -0.419433 - -0 0.625 -0.32102 -0.0625 0.625 -0.296584 -0.125 0.625 -0.226995 -0.1875 0.625 -0.122849 -0.25 0.625 -3.46945e-17 -0.3125 0.625 0.122849 -0.375 0.625 0.226995 -0.4375 0.625 0.296584 -0.5 0.625 0.32102 -0.5625 0.625 0.296584 -0.625 0.625 0.226995 -0.6875 0.625 0.122849 -0.75 0.625 4.85723e-17 -0.8125 0.625 -0.122849 -0.875 0.625 -0.226995 -0.9375 0.625 -0.296584 -1 0.625 -0.32102 - -0 0.6875 -0.173735 -0.0625 0.6875 -0.16051 -0.125 0.6875 -0.122849 -0.1875 0.6875 -0.0664854 -0.25 0.6875 -1.73472e-17 -0.3125 0.6875 0.0664854 -0.375 0.6875 0.122849 -0.4375 0.6875 0.16051 -0.5 0.6875 0.173735 -0.5625 0.6875 0.16051 -0.625 0.6875 0.122849 -0.6875 0.6875 0.0664854 -0.75 0.6875 2.42861e-17 -0.8125 0.6875 -0.0664854 -0.875 0.6875 -0.122849 -0.9375 0.6875 -0.16051 -1 0.6875 -0.173735 - -0 0.75 -5.55112e-17 -0.0625 0.75 -5.55112e-17 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -1.38778e-17 -0.25 0.75 -6.16298e-33 -0.3125 0.75 1.38778e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 8.32667e-17 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 1.38778e-17 -0.75 0.75 1.2326e-32 -0.8125 0.75 -4.16334e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -8.32667e-17 -1 0.75 -5.55112e-17 - -0 0.8125 0.173735 -0.0625 0.8125 0.16051 -0.125 0.8125 0.122849 -0.1875 0.8125 0.0664854 -0.25 0.8125 2.08167e-17 -0.3125 0.8125 -0.0664854 -0.375 0.8125 -0.122849 -0.4375 0.8125 -0.16051 -0.5 0.8125 -0.173735 -0.5625 0.8125 -0.16051 -0.625 0.8125 -0.122849 -0.6875 0.8125 -0.0664854 -0.75 0.8125 -2.08167e-17 -0.8125 0.8125 0.0664854 -0.875 0.8125 0.122849 -0.9375 0.8125 0.16051 -1 0.8125 0.173735 - -0 0.875 0.32102 -0.0625 0.875 0.296584 -0.125 0.875 0.226995 -0.1875 0.875 0.122849 -0.25 0.875 4.16334e-17 -0.3125 0.875 -0.122849 -0.375 0.875 -0.226995 -0.4375 0.875 -0.296584 -0.5 0.875 -0.32102 -0.5625 0.875 -0.296584 -0.625 0.875 -0.226995 -0.6875 0.875 -0.122849 -0.75 0.875 -4.16334e-17 -0.8125 0.875 0.122849 -0.875 0.875 0.226995 -0.9375 0.875 0.296584 -1 0.875 0.32102 - -0 0.9375 0.419433 -0.0625 0.9375 0.387505 -0.125 0.9375 0.296584 -0.1875 0.9375 0.16051 -0.25 0.9375 4.85723e-17 -0.3125 0.9375 -0.16051 -0.375 0.9375 -0.296584 -0.4375 0.9375 -0.387505 -0.5 0.9375 -0.419433 -0.5625 0.9375 -0.387505 -0.625 0.9375 -0.296584 -0.6875 0.9375 -0.16051 -0.75 0.9375 -6.245e-17 -0.8125 0.9375 0.16051 -0.875 0.9375 0.296584 -0.9375 0.9375 0.387505 -1 0.9375 0.419433 - -0 1 0.45399 -0.0625 1 0.419433 -0.125 1 0.32102 -0.1875 1 0.173735 -0.25 1 5.55112e-17 -0.3125 1 -0.173735 -0.375 1 -0.32102 -0.4375 1 -0.419433 -0.5 1 -0.45399 -0.5625 1 -0.419433 -0.625 1 -0.32102 -0.6875 1 -0.173735 -0.75 1 -5.55112e-17 -0.8125 1 0.173735 -0.875 1 0.32102 -0.9375 1 0.419433 -1 1 0.45399 - - -0 0 0.425779 -0.0625 0 0.393369 -0.125 0 0.301071 -0.1875 0 0.162939 -0.25 0 2.77556e-17 -0.3125 0 -0.162939 -0.375 0 -0.301071 -0.4375 0 -0.393369 -0.5 0 -0.425779 -0.5625 0 -0.393369 -0.625 0 -0.301071 -0.6875 0 -0.162939 -0.75 0 -8.32667e-17 -0.8125 0 0.162939 -0.875 0 0.301071 -0.9375 0 0.393369 -1 0 0.425779 - -0 0.0625 0.393369 -0.0625 0.0625 0.363425 -0.125 0.0625 0.278154 -0.1875 0.0625 0.150536 -0.25 0.0625 2.42861e-17 -0.3125 0.0625 -0.150536 -0.375 0.0625 -0.278154 -0.4375 0.0625 -0.363425 -0.5 0.0625 -0.393369 -0.5625 0.0625 -0.363425 -0.625 0.0625 -0.278154 -0.6875 0.0625 -0.150536 -0.75 0.0625 -8.67362e-17 -0.8125 0.0625 0.150536 -0.875 0.0625 0.278154 -0.9375 0.0625 0.363425 -1 0.0625 0.393369 - -0 0.125 0.301071 -0.0625 0.125 0.278154 -0.125 0.125 0.21289 -0.1875 0.125 0.115215 -0.25 0.125 2.08167e-17 -0.3125 0.125 -0.115215 -0.375 0.125 -0.21289 -0.4375 0.125 -0.278154 -0.5 0.125 -0.301071 -0.5625 0.125 -0.278154 -0.625 0.125 -0.21289 -0.6875 0.125 -0.115215 -0.75 0.125 -6.245e-17 -0.8125 0.125 0.115215 -0.875 0.125 0.21289 -0.9375 0.125 0.278154 -1 0.125 0.301071 - -0 0.1875 0.162939 -0.0625 0.1875 0.150536 -0.125 0.1875 0.115215 -0.1875 0.1875 0.0623539 -0.25 0.1875 1.04083e-17 -0.3125 0.1875 -0.0623539 -0.375 0.1875 -0.115215 -0.4375 0.1875 -0.150536 -0.5 0.1875 -0.162939 -0.5625 0.1875 -0.150536 -0.625 0.1875 -0.115215 -0.6875 0.1875 -0.0623539 -0.75 0.1875 -3.1225e-17 -0.8125 0.1875 0.0623539 -0.875 0.1875 0.115215 -0.9375 0.1875 0.150536 -1 0.1875 0.162939 - -0 0.25 2.77556e-17 -0.0625 0.25 2.77556e-17 -0.125 0.25 0 -0.1875 0.25 1.38778e-17 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 0 -0.4375 0.25 -2.77556e-17 -0.5 0.25 -2.77556e-17 -0.5625 0.25 0 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 -6.16298e-33 -0.8125 0.25 1.38778e-17 -0.875 0.25 2.77556e-17 -0.9375 0.25 5.55112e-17 -1 0.25 2.77556e-17 - -0 0.3125 -0.162939 -0.0625 0.3125 -0.150536 -0.125 0.3125 -0.115215 -0.1875 0.3125 -0.0623539 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.0623539 -0.375 0.3125 0.115215 -0.4375 0.3125 0.150536 -0.5 0.3125 0.162939 -0.5625 0.3125 0.150536 -0.625 0.3125 0.115215 -0.6875 0.3125 0.0623539 -0.75 0.3125 2.77556e-17 -0.8125 0.3125 -0.0623539 -0.875 0.3125 -0.115215 -0.9375 0.3125 -0.150536 -1 0.3125 -0.162939 - -0 0.375 -0.301071 -0.0625 0.375 -0.278154 -0.125 0.375 -0.21289 -0.1875 0.375 -0.115215 -0.25 0.375 -2.77556e-17 -0.3125 0.375 0.115215 -0.375 0.375 0.21289 -0.4375 0.375 0.278154 -0.5 0.375 0.301071 -0.5625 0.375 0.278154 -0.625 0.375 0.21289 -0.6875 0.375 0.115215 -0.75 0.375 5.55112e-17 -0.8125 0.375 -0.115215 -0.875 0.375 -0.21289 -0.9375 0.375 -0.278154 -1 0.375 -0.301071 - -0 0.4375 -0.393369 -0.0625 0.4375 -0.363425 -0.125 0.4375 -0.278154 -0.1875 0.4375 -0.150536 -0.25 0.4375 -2.77556e-17 -0.3125 0.4375 0.150536 -0.375 0.4375 0.278154 -0.4375 0.4375 0.363425 -0.5 0.4375 0.393369 -0.5625 0.4375 0.363425 -0.625 0.4375 0.278154 -0.6875 0.4375 0.150536 -0.75 0.4375 8.32667e-17 -0.8125 0.4375 -0.150536 -0.875 0.4375 -0.278154 -0.9375 0.4375 -0.363425 -1 0.4375 -0.393369 - -0 0.5 -0.425779 -0.0625 0.5 -0.393369 -0.125 0.5 -0.301071 -0.1875 0.5 -0.162939 -0.25 0.5 -2.77556e-17 -0.3125 0.5 0.162939 -0.375 0.5 0.301071 -0.4375 0.5 0.393369 -0.5 0.5 0.425779 -0.5625 0.5 0.393369 -0.625 0.5 0.301071 -0.6875 0.5 0.162939 -0.75 0.5 8.32667e-17 -0.8125 0.5 -0.162939 -0.875 0.5 -0.301071 -0.9375 0.5 -0.393369 -1 0.5 -0.425779 - -0 0.5625 -0.393369 -0.0625 0.5625 -0.363425 -0.125 0.5625 -0.278154 -0.1875 0.5625 -0.150536 -0.25 0.5625 -3.1225e-17 -0.3125 0.5625 0.150536 -0.375 0.5625 0.278154 -0.4375 0.5625 0.363425 -0.5 0.5625 0.393369 -0.5625 0.5625 0.363425 -0.625 0.5625 0.278154 -0.6875 0.5625 0.150536 -0.75 0.5625 7.97973e-17 -0.8125 0.5625 -0.150536 -0.875 0.5625 -0.278154 -0.9375 0.5625 -0.363425 -1 0.5625 -0.393369 - -0 0.625 -0.301071 -0.0625 0.625 -0.278154 -0.125 0.625 -0.21289 -0.1875 0.625 -0.115215 -0.25 0.625 -3.46945e-17 -0.3125 0.625 0.115215 -0.375 0.625 0.21289 -0.4375 0.625 0.278154 -0.5 0.625 0.301071 -0.5625 0.625 0.278154 -0.625 0.625 0.21289 -0.6875 0.625 0.115215 -0.75 0.625 4.85723e-17 -0.8125 0.625 -0.115215 -0.875 0.625 -0.21289 -0.9375 0.625 -0.278154 -1 0.625 -0.301071 - -0 0.6875 -0.162939 -0.0625 0.6875 -0.150536 -0.125 0.6875 -0.115215 -0.1875 0.6875 -0.0623539 -0.25 0.6875 -1.82146e-17 -0.3125 0.6875 0.0623539 -0.375 0.6875 0.115215 -0.4375 0.6875 0.150536 -0.5 0.6875 0.162939 -0.5625 0.6875 0.150536 -0.625 0.6875 0.115215 -0.6875 0.6875 0.0623539 -0.75 0.6875 2.34188e-17 -0.8125 0.6875 -0.0623539 -0.875 0.6875 -0.115215 -0.9375 0.6875 -0.150536 -1 0.6875 -0.162939 - -0 0.75 -8.32667e-17 -0.0625 0.75 -8.32667e-17 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -6.16298e-33 -0.3125 0.75 2.77556e-17 -0.375 0.75 8.32667e-17 -0.4375 0.75 8.32667e-17 -0.5 0.75 8.32667e-17 -0.5625 0.75 1.11022e-16 -0.625 0.75 2.77556e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 1.2326e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -8.32667e-17 - -0 0.8125 0.162939 -0.0625 0.8125 0.150536 -0.125 0.8125 0.115215 -0.1875 0.8125 0.0623539 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.0623539 -0.375 0.8125 -0.115215 -0.4375 0.8125 -0.150536 -0.5 0.8125 -0.162939 -0.5625 0.8125 -0.150536 -0.625 0.8125 -0.115215 -0.6875 0.8125 -0.0623539 -0.75 0.8125 -2.77556e-17 -0.8125 0.8125 0.0623539 -0.875 0.8125 0.115215 -0.9375 0.8125 0.150536 -1 0.8125 0.162939 - -0 0.875 0.301071 -0.0625 0.875 0.278154 -0.125 0.875 0.21289 -0.1875 0.875 0.115215 -0.25 0.875 2.77556e-17 -0.3125 0.875 -0.115215 -0.375 0.875 -0.21289 -0.4375 0.875 -0.278154 -0.5 0.875 -0.301071 -0.5625 0.875 -0.278154 -0.625 0.875 -0.21289 -0.6875 0.875 -0.115215 -0.75 0.875 -5.55112e-17 -0.8125 0.875 0.115215 -0.875 0.875 0.21289 -0.9375 0.875 0.278154 -1 0.875 0.301071 - -0 0.9375 0.393369 -0.0625 0.9375 0.363425 -0.125 0.9375 0.278154 -0.1875 0.9375 0.150536 -0.25 0.9375 2.77556e-17 -0.3125 0.9375 -0.150536 -0.375 0.9375 -0.278154 -0.4375 0.9375 -0.363425 -0.5 0.9375 -0.393369 -0.5625 0.9375 -0.363425 -0.625 0.9375 -0.278154 -0.6875 0.9375 -0.150536 -0.75 0.9375 -8.32667e-17 -0.8125 0.9375 0.150536 -0.875 0.9375 0.278154 -0.9375 0.9375 0.363425 -1 0.9375 0.393369 - -0 1 0.425779 -0.0625 1 0.393369 -0.125 1 0.301071 -0.1875 1 0.162939 -0.25 1 2.77556e-17 -0.3125 1 -0.162939 -0.375 1 -0.301071 -0.4375 1 -0.393369 -0.5 1 -0.425779 -0.5625 1 -0.393369 -0.625 1 -0.301071 -0.6875 1 -0.162939 -0.75 1 -8.32667e-17 -0.8125 1 0.162939 -0.875 1 0.301071 -0.9375 1 0.393369 -1 1 0.425779 - - -0 0 0.397148 -0.0625 0 0.366917 -0.125 0 0.280826 -0.1875 0 0.151982 -0.25 0 5.55112e-17 -0.3125 0 -0.151982 -0.375 0 -0.280826 -0.4375 0 -0.366917 -0.5 0 -0.397148 -0.5625 0 -0.366917 -0.625 0 -0.280826 -0.6875 0 -0.151982 -0.75 0 -5.55112e-17 -0.8125 0 0.151982 -0.875 0 0.280826 -0.9375 0 0.366917 -1 0 0.397148 - -0 0.0625 0.366917 -0.0625 0.0625 0.338987 -0.125 0.0625 0.259449 -0.1875 0.0625 0.140413 -0.25 0.0625 5.20417e-17 -0.3125 0.0625 -0.140413 -0.375 0.0625 -0.259449 -0.4375 0.0625 -0.338987 -0.5 0.0625 -0.366917 -0.5625 0.0625 -0.338987 -0.625 0.0625 -0.259449 -0.6875 0.0625 -0.140413 -0.75 0.0625 -3.1225e-17 -0.8125 0.0625 0.140413 -0.875 0.0625 0.259449 -0.9375 0.0625 0.338987 -1 0.0625 0.366917 - -0 0.125 0.280826 -0.0625 0.125 0.259449 -0.125 0.125 0.198574 -0.1875 0.125 0.107467 -0.25 0.125 4.85723e-17 -0.3125 0.125 -0.107467 -0.375 0.125 -0.198574 -0.4375 0.125 -0.259449 -0.5 0.125 -0.280826 -0.5625 0.125 -0.259449 -0.625 0.125 -0.198574 -0.6875 0.125 -0.107467 -0.75 0.125 -3.46945e-17 -0.8125 0.125 0.107467 -0.875 0.125 0.198574 -0.9375 0.125 0.259449 -1 0.125 0.280826 - -0 0.1875 0.151982 -0.0625 0.1875 0.140413 -0.125 0.1875 0.107467 -0.1875 0.1875 0.058161 -0.25 0.1875 2.51535e-17 -0.3125 0.1875 -0.058161 -0.375 0.1875 -0.107467 -0.4375 0.1875 -0.140413 -0.5 0.1875 -0.151982 -0.5625 0.1875 -0.140413 -0.625 0.1875 -0.107467 -0.6875 0.1875 -0.058161 -0.75 0.1875 -1.64799e-17 -0.8125 0.1875 0.058161 -0.875 0.1875 0.107467 -0.9375 0.1875 0.140413 -1 0.1875 0.151982 - -0 0.25 5.55112e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 2.77556e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -5.55112e-17 -0.4375 0.25 0 -0.5 0.25 0 -0.5625 0.25 0 -0.625 0.25 -2.77556e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 -6.16298e-33 -0.8125 0.25 2.77556e-17 -0.875 0.25 2.77556e-17 -0.9375 0.25 0 -1 0.25 5.55112e-17 - -0 0.3125 -0.151982 -0.0625 0.3125 -0.140413 -0.125 0.3125 -0.107467 -0.1875 0.3125 -0.058161 -0.25 0.3125 -2.08167e-17 -0.3125 0.3125 0.058161 -0.375 0.3125 0.107467 -0.4375 0.3125 0.140413 -0.5 0.3125 0.151982 -0.5625 0.3125 0.140413 -0.625 0.3125 0.107467 -0.6875 0.3125 0.058161 -0.75 0.3125 2.08167e-17 -0.8125 0.3125 -0.058161 -0.875 0.3125 -0.107467 -0.9375 0.3125 -0.140413 -1 0.3125 -0.151982 - -0 0.375 -0.280826 -0.0625 0.375 -0.259449 -0.125 0.375 -0.198574 -0.1875 0.375 -0.107467 -0.25 0.375 -4.16334e-17 -0.3125 0.375 0.107467 -0.375 0.375 0.198574 -0.4375 0.375 0.259449 -0.5 0.375 0.280826 -0.5625 0.375 0.259449 -0.625 0.375 0.198574 -0.6875 0.375 0.107467 -0.75 0.375 4.16334e-17 -0.8125 0.375 -0.107467 -0.875 0.375 -0.198574 -0.9375 0.375 -0.259449 -1 0.375 -0.280826 - -0 0.4375 -0.366917 -0.0625 0.4375 -0.338987 -0.125 0.4375 -0.259449 -0.1875 0.4375 -0.140413 -0.25 0.4375 -4.85723e-17 -0.3125 0.4375 0.140413 -0.375 0.4375 0.259449 -0.4375 0.4375 0.338987 -0.5 0.4375 0.366917 -0.5625 0.4375 0.338987 -0.625 0.4375 0.259449 -0.6875 0.4375 0.140413 -0.75 0.4375 3.46945e-17 -0.8125 0.4375 -0.140413 -0.875 0.4375 -0.259449 -0.9375 0.4375 -0.338987 -1 0.4375 -0.366917 - -0 0.5 -0.397148 -0.0625 0.5 -0.366917 -0.125 0.5 -0.280826 -0.1875 0.5 -0.151982 -0.25 0.5 -5.55112e-17 -0.3125 0.5 0.151982 -0.375 0.5 0.280826 -0.4375 0.5 0.366917 -0.5 0.5 0.397148 -0.5625 0.5 0.366917 -0.625 0.5 0.280826 -0.6875 0.5 0.151982 -0.75 0.5 5.55112e-17 -0.8125 0.5 -0.151982 -0.875 0.5 -0.280826 -0.9375 0.5 -0.366917 -1 0.5 -0.397148 - -0 0.5625 -0.366917 -0.0625 0.5625 -0.338987 -0.125 0.5625 -0.259449 -0.1875 0.5625 -0.140413 -0.25 0.5625 -4.51028e-17 -0.3125 0.5625 0.140413 -0.375 0.5625 0.259449 -0.4375 0.5625 0.338987 -0.5 0.5625 0.366917 -0.5625 0.5625 0.338987 -0.625 0.5625 0.259449 -0.6875 0.5625 0.140413 -0.75 0.5625 3.81639e-17 -0.8125 0.5625 -0.140413 -0.875 0.5625 -0.259449 -0.9375 0.5625 -0.338987 -1 0.5625 -0.366917 - -0 0.625 -0.280826 -0.0625 0.625 -0.259449 -0.125 0.625 -0.198574 -0.1875 0.625 -0.107467 -0.25 0.625 -3.46945e-17 -0.3125 0.625 0.107467 -0.375 0.625 0.198574 -0.4375 0.625 0.259449 -0.5 0.625 0.280826 -0.5625 0.625 0.259449 -0.625 0.625 0.198574 -0.6875 0.625 0.107467 -0.75 0.625 4.85723e-17 -0.8125 0.625 -0.107467 -0.875 0.625 -0.198574 -0.9375 0.625 -0.259449 -1 0.625 -0.280826 - -0 0.6875 -0.151982 -0.0625 0.6875 -0.140413 -0.125 0.6875 -0.107467 -0.1875 0.6875 -0.058161 -0.25 0.6875 -1.64799e-17 -0.3125 0.6875 0.058161 -0.375 0.6875 0.107467 -0.4375 0.6875 0.140413 -0.5 0.6875 0.151982 -0.5625 0.6875 0.140413 -0.625 0.6875 0.107467 -0.6875 0.6875 0.058161 -0.75 0.6875 2.51535e-17 -0.8125 0.6875 -0.058161 -0.875 0.6875 -0.107467 -0.9375 0.6875 -0.140413 -1 0.6875 -0.151982 - -0 0.75 -5.55112e-17 -0.0625 0.75 -5.55112e-17 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -4.16334e-17 -0.25 0.75 -6.16298e-33 -0.3125 0.75 2.77556e-17 -0.375 0.75 2.77556e-17 -0.4375 0.75 1.11022e-16 -0.5 0.75 1.11022e-16 -0.5625 0.75 1.11022e-16 -0.625 0.75 5.55112e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 1.2326e-32 -0.8125 0.75 -1.38778e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -1.11022e-16 -1 0.75 -5.55112e-17 - -0 0.8125 0.151982 -0.0625 0.8125 0.140413 -0.125 0.8125 0.107467 -0.1875 0.8125 0.058161 -0.25 0.8125 2.08167e-17 -0.3125 0.8125 -0.058161 -0.375 0.8125 -0.107467 -0.4375 0.8125 -0.140413 -0.5 0.8125 -0.151982 -0.5625 0.8125 -0.140413 -0.625 0.8125 -0.107467 -0.6875 0.8125 -0.058161 -0.75 0.8125 -2.08167e-17 -0.8125 0.8125 0.058161 -0.875 0.8125 0.107467 -0.9375 0.8125 0.140413 -1 0.8125 0.151982 - -0 0.875 0.280826 -0.0625 0.875 0.259449 -0.125 0.875 0.198574 -0.1875 0.875 0.107467 -0.25 0.875 4.16334e-17 -0.3125 0.875 -0.107467 -0.375 0.875 -0.198574 -0.4375 0.875 -0.259449 -0.5 0.875 -0.280826 -0.5625 0.875 -0.259449 -0.625 0.875 -0.198574 -0.6875 0.875 -0.107467 -0.75 0.875 -4.16334e-17 -0.8125 0.875 0.107467 -0.875 0.875 0.198574 -0.9375 0.875 0.259449 -1 0.875 0.280826 - -0 0.9375 0.366917 -0.0625 0.9375 0.338987 -0.125 0.9375 0.259449 -0.1875 0.9375 0.140413 -0.25 0.9375 4.85723e-17 -0.3125 0.9375 -0.140413 -0.375 0.9375 -0.259449 -0.4375 0.9375 -0.338987 -0.5 0.9375 -0.366917 -0.5625 0.9375 -0.338987 -0.625 0.9375 -0.259449 -0.6875 0.9375 -0.140413 -0.75 0.9375 -3.46945e-17 -0.8125 0.9375 0.140413 -0.875 0.9375 0.259449 -0.9375 0.9375 0.338987 -1 0.9375 0.366917 - -0 1 0.397148 -0.0625 1 0.366917 -0.125 1 0.280826 -0.1875 1 0.151982 -0.25 1 5.55112e-17 -0.3125 1 -0.151982 -0.375 1 -0.280826 -0.4375 1 -0.366917 -0.5 1 -0.397148 -0.5625 1 -0.366917 -0.625 1 -0.280826 -0.6875 1 -0.151982 -0.75 1 -5.55112e-17 -0.8125 1 0.151982 -0.875 1 0.280826 -0.9375 1 0.366917 -1 1 0.397148 - - -0 0 0.368125 -0.0625 0 0.340103 -0.125 0 0.260303 -0.1875 0 0.140875 -0.25 0 0 -0.3125 0 -0.140875 -0.375 0 -0.260303 -0.4375 0 -0.340103 -0.5 0 -0.368125 -0.5625 0 -0.340103 -0.625 0 -0.260303 -0.6875 0 -0.140875 -0.75 0 -8.32667e-17 -0.8125 0 0.140875 -0.875 0 0.260303 -0.9375 0 0.340103 -1 0 0.368125 - -0 0.0625 0.340103 -0.0625 0.0625 0.314214 -0.125 0.0625 0.240489 -0.1875 0.0625 0.130152 -0.25 0.0625 1.04083e-17 -0.3125 0.0625 -0.130152 -0.375 0.0625 -0.240489 -0.4375 0.0625 -0.314214 -0.5 0.0625 -0.340103 -0.5625 0.0625 -0.314214 -0.625 0.0625 -0.240489 -0.6875 0.0625 -0.130152 -0.75 0.0625 -7.28584e-17 -0.8125 0.0625 0.130152 -0.875 0.0625 0.240489 -0.9375 0.0625 0.314214 -1 0.0625 0.340103 - -0 0.125 0.260303 -0.0625 0.125 0.240489 -0.125 0.125 0.184062 -0.1875 0.125 0.0996138 -0.25 0.125 2.08167e-17 -0.3125 0.125 -0.0996138 -0.375 0.125 -0.184062 -0.4375 0.125 -0.240489 -0.5 0.125 -0.260303 -0.5625 0.125 -0.240489 -0.625 0.125 -0.184062 -0.6875 0.125 -0.0996138 -0.75 0.125 -6.245e-17 -0.8125 0.125 0.0996138 -0.875 0.125 0.184062 -0.9375 0.125 0.240489 -1 0.125 0.260303 - -0 0.1875 0.140875 -0.0625 0.1875 0.130152 -0.125 0.1875 0.0996138 -0.1875 0.1875 0.0539106 -0.25 0.1875 1.04083e-17 -0.3125 0.1875 -0.0539106 -0.375 0.1875 -0.0996138 -0.4375 0.1875 -0.130152 -0.5 0.1875 -0.140875 -0.5625 0.1875 -0.130152 -0.625 0.1875 -0.0996138 -0.6875 0.1875 -0.0539106 -0.75 0.1875 -3.1225e-17 -0.8125 0.1875 0.0539106 -0.875 0.1875 0.0996138 -0.9375 0.1875 0.130152 -1 0.1875 0.140875 - -0 0.25 0 -0.0625 0.25 0 -0.125 0.25 0 -0.1875 0.25 1.38778e-17 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -2.77556e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 0 -0.5625 0.25 -2.77556e-17 -0.625 0.25 -5.55112e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 -6.16298e-33 -0.8125 0.25 1.38778e-17 -0.875 0.25 2.77556e-17 -0.9375 0.25 2.77556e-17 -1 0.25 0 - -0 0.3125 -0.140875 -0.0625 0.3125 -0.130152 -0.125 0.3125 -0.0996138 -0.1875 0.3125 -0.0539106 -0.25 0.3125 -6.93889e-18 -0.3125 0.3125 0.0539106 -0.375 0.3125 0.0996138 -0.4375 0.3125 0.130152 -0.5 0.3125 0.140875 -0.5625 0.3125 0.130152 -0.625 0.3125 0.0996138 -0.6875 0.3125 0.0539106 -0.75 0.3125 3.46945e-17 -0.8125 0.3125 -0.0539106 -0.875 0.3125 -0.0996138 -0.9375 0.3125 -0.130152 -1 0.3125 -0.140875 - -0 0.375 -0.260303 -0.0625 0.375 -0.240489 -0.125 0.375 -0.184062 -0.1875 0.375 -0.0996138 -0.25 0.375 -1.38778e-17 -0.3125 0.375 0.0996138 -0.375 0.375 0.184062 -0.4375 0.375 0.240489 -0.5 0.375 0.260303 -0.5625 0.375 0.240489 -0.625 0.375 0.184062 -0.6875 0.375 0.0996138 -0.75 0.375 6.93889e-17 -0.8125 0.375 -0.0996138 -0.875 0.375 -0.184062 -0.9375 0.375 -0.240489 -1 0.375 -0.260303 - -0 0.4375 -0.340103 -0.0625 0.4375 -0.314214 -0.125 0.4375 -0.240489 -0.1875 0.4375 -0.130152 -0.25 0.4375 -6.93889e-18 -0.3125 0.4375 0.130152 -0.375 0.4375 0.240489 -0.4375 0.4375 0.314214 -0.5 0.4375 0.340103 -0.5625 0.4375 0.314214 -0.625 0.4375 0.240489 -0.6875 0.4375 0.130152 -0.75 0.4375 7.63278e-17 -0.8125 0.4375 -0.130152 -0.875 0.4375 -0.240489 -0.9375 0.4375 -0.314214 -1 0.4375 -0.340103 - -0 0.5 -0.368125 -0.0625 0.5 -0.340103 -0.125 0.5 -0.260303 -0.1875 0.5 -0.140875 -0.25 0.5 0 -0.3125 0.5 0.140875 -0.375 0.5 0.260303 -0.4375 0.5 0.340103 -0.5 0.5 0.368125 -0.5625 0.5 0.340103 -0.625 0.5 0.260303 -0.6875 0.5 0.140875 -0.75 0.5 8.32667e-17 -0.8125 0.5 -0.140875 -0.875 0.5 -0.260303 -0.9375 0.5 -0.340103 -1 0.5 -0.368125 - -0 0.5625 -0.340103 -0.0625 0.5625 -0.314214 -0.125 0.5625 -0.240489 -0.1875 0.5625 -0.130152 -0.25 0.5625 -6.93889e-18 -0.3125 0.5625 0.130152 -0.375 0.5625 0.240489 -0.4375 0.5625 0.314214 -0.5 0.5625 0.340103 -0.5625 0.5625 0.314214 -0.625 0.5625 0.240489 -0.6875 0.5625 0.130152 -0.75 0.5625 7.63278e-17 -0.8125 0.5625 -0.130152 -0.875 0.5625 -0.240489 -0.9375 0.5625 -0.314214 -1 0.5625 -0.340103 - -0 0.625 -0.260303 -0.0625 0.625 -0.240489 -0.125 0.625 -0.184062 -0.1875 0.625 -0.0996138 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.0996138 -0.375 0.625 0.184062 -0.4375 0.625 0.240489 -0.5 0.625 0.260303 -0.5625 0.625 0.240489 -0.625 0.625 0.184062 -0.6875 0.625 0.0996138 -0.75 0.625 6.93889e-17 -0.8125 0.625 -0.0996138 -0.875 0.625 -0.184062 -0.9375 0.625 -0.240489 -1 0.625 -0.260303 - -0 0.6875 -0.140875 -0.0625 0.6875 -0.130152 -0.125 0.6875 -0.0996138 -0.1875 0.6875 -0.0539106 -0.25 0.6875 -7.80626e-18 -0.3125 0.6875 0.0539106 -0.375 0.6875 0.0996138 -0.4375 0.6875 0.130152 -0.5 0.6875 0.140875 -0.5625 0.6875 0.130152 -0.625 0.6875 0.0996138 -0.6875 0.6875 0.0539106 -0.75 0.6875 3.38271e-17 -0.8125 0.6875 -0.0539106 -0.875 0.6875 -0.0996138 -0.9375 0.6875 -0.130152 -1 0.6875 -0.140875 - -0 0.75 -8.32667e-17 -0.0625 0.75 -8.32667e-17 -0.125 0.75 -8.32667e-17 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -6.16298e-33 -0.3125 0.75 2.77556e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 2.77556e-17 -0.5 0.75 8.32667e-17 -0.5625 0.75 5.55112e-17 -0.625 0.75 2.77556e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 1.2326e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -2.77556e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -8.32667e-17 - -0 0.8125 0.140875 -0.0625 0.8125 0.130152 -0.125 0.8125 0.0996138 -0.1875 0.8125 0.0539106 -0.25 0.8125 6.93889e-18 -0.3125 0.8125 -0.0539106 -0.375 0.8125 -0.0996138 -0.4375 0.8125 -0.130152 -0.5 0.8125 -0.140875 -0.5625 0.8125 -0.130152 -0.625 0.8125 -0.0996138 -0.6875 0.8125 -0.0539106 -0.75 0.8125 -3.46945e-17 -0.8125 0.8125 0.0539106 -0.875 0.8125 0.0996138 -0.9375 0.8125 0.130152 -1 0.8125 0.140875 - -0 0.875 0.260303 -0.0625 0.875 0.240489 -0.125 0.875 0.184062 -0.1875 0.875 0.0996138 -0.25 0.875 1.38778e-17 -0.3125 0.875 -0.0996138 -0.375 0.875 -0.184062 -0.4375 0.875 -0.240489 -0.5 0.875 -0.260303 -0.5625 0.875 -0.240489 -0.625 0.875 -0.184062 -0.6875 0.875 -0.0996138 -0.75 0.875 -6.93889e-17 -0.8125 0.875 0.0996138 -0.875 0.875 0.184062 -0.9375 0.875 0.240489 -1 0.875 0.260303 - -0 0.9375 0.340103 -0.0625 0.9375 0.314214 -0.125 0.9375 0.240489 -0.1875 0.9375 0.130152 -0.25 0.9375 6.93889e-18 -0.3125 0.9375 -0.130152 -0.375 0.9375 -0.240489 -0.4375 0.9375 -0.314214 -0.5 0.9375 -0.340103 -0.5625 0.9375 -0.314214 -0.625 0.9375 -0.240489 -0.6875 0.9375 -0.130152 -0.75 0.9375 -7.63278e-17 -0.8125 0.9375 0.130152 -0.875 0.9375 0.240489 -0.9375 0.9375 0.314214 -1 0.9375 0.340103 - -0 1 0.368125 -0.0625 1 0.340103 -0.125 1 0.260303 -0.1875 1 0.140875 -0.25 1 0 -0.3125 1 -0.140875 -0.375 1 -0.260303 -0.4375 1 -0.340103 -0.5 1 -0.368125 -0.5625 1 -0.340103 -0.625 1 -0.260303 -0.6875 1 -0.140875 -0.75 1 -8.32667e-17 -0.8125 1 0.140875 -0.875 1 0.260303 -0.9375 1 0.340103 -1 1 0.368125 - - -0 0 0.338738 -0.0625 0 0.312953 -0.125 0 0.239524 -0.1875 0 0.129629 -0.25 0 2.77556e-17 -0.3125 0 -0.129629 -0.375 0 -0.239524 -0.4375 0 -0.312953 -0.5 0 -0.338738 -0.5625 0 -0.312953 -0.625 0 -0.239524 -0.6875 0 -0.129629 -0.75 0 -5.55112e-17 -0.8125 0 0.129629 -0.875 0 0.239524 -0.9375 0 0.312953 -1 0 0.338738 - -0 0.0625 0.312953 -0.0625 0.0625 0.289131 -0.125 0.0625 0.221291 -0.1875 0.0625 0.119762 -0.25 0.0625 2.42861e-17 -0.3125 0.0625 -0.119762 -0.375 0.0625 -0.221291 -0.4375 0.0625 -0.289131 -0.5 0.0625 -0.312953 -0.5625 0.0625 -0.289131 -0.625 0.0625 -0.221291 -0.6875 0.0625 -0.119762 -0.75 0.0625 -5.89806e-17 -0.8125 0.0625 0.119762 -0.875 0.0625 0.221291 -0.9375 0.0625 0.289131 -1 0.0625 0.312953 - -0 0.125 0.239524 -0.0625 0.125 0.221291 -0.125 0.125 0.169369 -0.1875 0.125 0.0916618 -0.25 0.125 6.93889e-18 -0.3125 0.125 -0.0916618 -0.375 0.125 -0.169369 -0.4375 0.125 -0.221291 -0.5 0.125 -0.239524 -0.5625 0.125 -0.221291 -0.625 0.125 -0.169369 -0.6875 0.125 -0.0916618 -0.75 0.125 -4.85723e-17 -0.8125 0.125 0.0916618 -0.875 0.125 0.169369 -0.9375 0.125 0.221291 -1 0.125 0.239524 - -0 0.1875 0.129629 -0.0625 0.1875 0.119762 -0.125 0.1875 0.0916618 -0.1875 0.1875 0.049607 -0.25 0.1875 1.04083e-17 -0.3125 0.1875 -0.049607 -0.375 0.1875 -0.0916618 -0.4375 0.1875 -0.119762 -0.5 0.1875 -0.129629 -0.5625 0.1875 -0.119762 -0.625 0.1875 -0.0916618 -0.6875 0.1875 -0.049607 -0.75 0.1875 -3.1225e-17 -0.8125 0.1875 0.049607 -0.875 0.1875 0.0916618 -0.9375 0.1875 0.119762 -1 0.1875 0.129629 - -0 0.25 2.77556e-17 -0.0625 0.25 0 -0.125 0.25 1.38778e-17 -0.1875 0.25 1.38778e-17 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -1.38778e-17 -0.4375 0.25 -2.77556e-17 -0.5 0.25 -2.77556e-17 -0.5625 0.25 -2.77556e-17 -0.625 0.25 -4.16334e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 0 -0.8125 0.25 1.38778e-17 -0.875 0.25 1.38778e-17 -0.9375 0.25 2.77556e-17 -1 0.25 2.77556e-17 - -0 0.3125 -0.129629 -0.0625 0.3125 -0.119762 -0.125 0.3125 -0.0916618 -0.1875 0.3125 -0.049607 -0.25 0.3125 -1.38778e-17 -0.3125 0.3125 0.049607 -0.375 0.3125 0.0916618 -0.4375 0.3125 0.119762 -0.5 0.3125 0.129629 -0.5625 0.3125 0.119762 -0.625 0.3125 0.0916618 -0.6875 0.3125 0.049607 -0.75 0.3125 2.77556e-17 -0.8125 0.3125 -0.049607 -0.875 0.3125 -0.0916618 -0.9375 0.3125 -0.119762 -1 0.3125 -0.129629 - -0 0.375 -0.239524 -0.0625 0.375 -0.221291 -0.125 0.375 -0.169369 -0.1875 0.375 -0.0916618 -0.25 0.375 -1.38778e-17 -0.3125 0.375 0.0916618 -0.375 0.375 0.169369 -0.4375 0.375 0.221291 -0.5 0.375 0.239524 -0.5625 0.375 0.221291 -0.625 0.375 0.169369 -0.6875 0.375 0.0916618 -0.75 0.375 4.16334e-17 -0.8125 0.375 -0.0916618 -0.875 0.375 -0.169369 -0.9375 0.375 -0.221291 -1 0.375 -0.239524 - -0 0.4375 -0.312953 -0.0625 0.4375 -0.289131 -0.125 0.4375 -0.221291 -0.1875 0.4375 -0.119762 -0.25 0.4375 -2.77556e-17 -0.3125 0.4375 0.119762 -0.375 0.4375 0.221291 -0.4375 0.4375 0.289131 -0.5 0.4375 0.312953 -0.5625 0.4375 0.289131 -0.625 0.4375 0.221291 -0.6875 0.4375 0.119762 -0.75 0.4375 5.55112e-17 -0.8125 0.4375 -0.119762 -0.875 0.4375 -0.221291 -0.9375 0.4375 -0.289131 -1 0.4375 -0.312953 - -0 0.5 -0.338738 -0.0625 0.5 -0.312953 -0.125 0.5 -0.239524 -0.1875 0.5 -0.129629 -0.25 0.5 -2.77556e-17 -0.3125 0.5 0.129629 -0.375 0.5 0.239524 -0.4375 0.5 0.312953 -0.5 0.5 0.338738 -0.5625 0.5 0.312953 -0.625 0.5 0.239524 -0.6875 0.5 0.129629 -0.75 0.5 5.55112e-17 -0.8125 0.5 -0.129629 -0.875 0.5 -0.239524 -0.9375 0.5 -0.312953 -1 0.5 -0.338738 - -0 0.5625 -0.312953 -0.0625 0.5625 -0.289131 -0.125 0.5625 -0.221291 -0.1875 0.5625 -0.119762 -0.25 0.5625 -2.77556e-17 -0.3125 0.5625 0.119762 -0.375 0.5625 0.221291 -0.4375 0.5625 0.289131 -0.5 0.5625 0.312953 -0.5625 0.5625 0.289131 -0.625 0.5625 0.221291 -0.6875 0.5625 0.119762 -0.75 0.5625 5.55112e-17 -0.8125 0.5625 -0.119762 -0.875 0.5625 -0.221291 -0.9375 0.5625 -0.289131 -1 0.5625 -0.312953 - -0 0.625 -0.239524 -0.0625 0.625 -0.221291 -0.125 0.625 -0.169369 -0.1875 0.625 -0.0916618 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.0916618 -0.375 0.625 0.169369 -0.4375 0.625 0.221291 -0.5 0.625 0.239524 -0.5625 0.625 0.221291 -0.625 0.625 0.169369 -0.6875 0.625 0.0916618 -0.75 0.625 4.16334e-17 -0.8125 0.625 -0.0916618 -0.875 0.625 -0.169369 -0.9375 0.625 -0.221291 -1 0.625 -0.239524 - -0 0.6875 -0.129629 -0.0625 0.6875 -0.119762 -0.125 0.6875 -0.0916618 -0.1875 0.6875 -0.049607 -0.25 0.6875 -1.38778e-17 -0.3125 0.6875 0.049607 -0.375 0.6875 0.0916618 -0.4375 0.6875 0.119762 -0.5 0.6875 0.129629 -0.5625 0.6875 0.119762 -0.625 0.6875 0.0916618 -0.6875 0.6875 0.049607 -0.75 0.6875 2.77556e-17 -0.8125 0.6875 -0.049607 -0.875 0.6875 -0.0916618 -0.9375 0.6875 -0.119762 -1 0.6875 -0.129629 - -0 0.75 -5.55112e-17 -0.0625 0.75 -8.32667e-17 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -2.77556e-17 -0.25 0.75 -6.16298e-33 -0.3125 0.75 2.77556e-17 -0.375 0.75 5.55112e-17 -0.4375 0.75 5.55112e-17 -0.5 0.75 5.55112e-17 -0.5625 0.75 5.55112e-17 -0.625 0.75 2.77556e-17 -0.6875 0.75 2.77556e-17 -0.75 0.75 1.2326e-32 -0.8125 0.75 -2.77556e-17 -0.875 0.75 -5.55112e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -5.55112e-17 - -0 0.8125 0.129629 -0.0625 0.8125 0.119762 -0.125 0.8125 0.0916618 -0.1875 0.8125 0.049607 -0.25 0.8125 1.38778e-17 -0.3125 0.8125 -0.049607 -0.375 0.8125 -0.0916618 -0.4375 0.8125 -0.119762 -0.5 0.8125 -0.129629 -0.5625 0.8125 -0.119762 -0.625 0.8125 -0.0916618 -0.6875 0.8125 -0.049607 -0.75 0.8125 -2.77556e-17 -0.8125 0.8125 0.049607 -0.875 0.8125 0.0916618 -0.9375 0.8125 0.119762 -1 0.8125 0.129629 - -0 0.875 0.239524 -0.0625 0.875 0.221291 -0.125 0.875 0.169369 -0.1875 0.875 0.0916618 -0.25 0.875 1.38778e-17 -0.3125 0.875 -0.0916618 -0.375 0.875 -0.169369 -0.4375 0.875 -0.221291 -0.5 0.875 -0.239524 -0.5625 0.875 -0.221291 -0.625 0.875 -0.169369 -0.6875 0.875 -0.0916618 -0.75 0.875 -4.16334e-17 -0.8125 0.875 0.0916618 -0.875 0.875 0.169369 -0.9375 0.875 0.221291 -1 0.875 0.239524 - -0 0.9375 0.312953 -0.0625 0.9375 0.289131 -0.125 0.9375 0.221291 -0.1875 0.9375 0.119762 -0.25 0.9375 2.77556e-17 -0.3125 0.9375 -0.119762 -0.375 0.9375 -0.221291 -0.4375 0.9375 -0.289131 -0.5 0.9375 -0.312953 -0.5625 0.9375 -0.289131 -0.625 0.9375 -0.221291 -0.6875 0.9375 -0.119762 -0.75 0.9375 -5.55112e-17 -0.8125 0.9375 0.119762 -0.875 0.9375 0.221291 -0.9375 0.9375 0.289131 -1 0.9375 0.312953 - -0 1 0.338738 -0.0625 1 0.312953 -0.125 1 0.239524 -0.1875 1 0.129629 -0.25 1 2.77556e-17 -0.3125 1 -0.129629 -0.375 1 -0.239524 -0.4375 1 -0.312953 -0.5 1 -0.338738 -0.5625 1 -0.312953 -0.625 1 -0.239524 -0.6875 1 -0.129629 -0.75 1 -5.55112e-17 -0.8125 1 0.129629 -0.875 1 0.239524 -0.9375 1 0.312953 -1 1 0.338738 - - -0 0 0.309017 -0.0625 0 0.285494 -0.125 0 0.218508 -0.1875 0 0.118256 -0.25 0 2.77556e-17 -0.3125 0 -0.118256 -0.375 0 -0.218508 -0.4375 0 -0.285494 -0.5 0 -0.309017 -0.5625 0 -0.285494 -0.625 0 -0.218508 -0.6875 0 -0.118256 -0.75 0 -5.55112e-17 -0.8125 0 0.118256 -0.875 0 0.218508 -0.9375 0 0.285494 -1 0 0.309017 - -0 0.0625 0.285494 -0.0625 0.0625 0.263763 -0.125 0.0625 0.201875 -0.1875 0.0625 0.109254 -0.25 0.0625 2.42861e-17 -0.3125 0.0625 -0.109254 -0.375 0.0625 -0.201875 -0.4375 0.0625 -0.263763 -0.5 0.0625 -0.285494 -0.5625 0.0625 -0.263763 -0.625 0.0625 -0.201875 -0.6875 0.0625 -0.109254 -0.75 0.0625 -5.89806e-17 -0.8125 0.0625 0.109254 -0.875 0.0625 0.201875 -0.9375 0.0625 0.263763 -1 0.0625 0.285494 - -0 0.125 0.218508 -0.0625 0.125 0.201875 -0.125 0.125 0.154508 -0.1875 0.125 0.0836194 -0.25 0.125 6.93889e-18 -0.3125 0.125 -0.0836194 -0.375 0.125 -0.154508 -0.4375 0.125 -0.201875 -0.5 0.125 -0.218508 -0.5625 0.125 -0.201875 -0.625 0.125 -0.154508 -0.6875 0.125 -0.0836194 -0.75 0.125 -4.85723e-17 -0.8125 0.125 0.0836194 -0.875 0.125 0.154508 -0.9375 0.125 0.201875 -1 0.125 0.218508 - -0 0.1875 0.118256 -0.0625 0.1875 0.109254 -0.125 0.1875 0.0836194 -0.1875 0.1875 0.0452545 -0.25 0.1875 2.60209e-18 -0.3125 0.1875 -0.0452545 -0.375 0.1875 -0.0836194 -0.4375 0.1875 -0.109254 -0.5 0.1875 -0.118256 -0.5625 0.1875 -0.109254 -0.625 0.1875 -0.0836194 -0.6875 0.1875 -0.0452545 -0.75 0.1875 -2.51535e-17 -0.8125 0.1875 0.0452545 -0.875 0.1875 0.0836194 -0.9375 0.1875 0.109254 -1 0.1875 0.118256 - -0 0.25 2.77556e-17 -0.0625 0.25 2.77556e-17 -0.125 0.25 2.77556e-17 -0.1875 0.25 1.38778e-17 -0.25 0.25 0 -0.3125 0.25 -2.08167e-17 -0.375 0.25 -2.77556e-17 -0.4375 0.25 0 -0.5 0.25 -2.77556e-17 -0.5625 0.25 -2.77556e-17 -0.625 0.25 -2.77556e-17 -0.6875 0.25 -2.08167e-17 -0.75 0.25 0 -0.8125 0.25 2.08167e-17 -0.875 0.25 2.77556e-17 -0.9375 0.25 2.77556e-17 -1 0.25 2.77556e-17 - -0 0.3125 -0.118256 -0.0625 0.3125 -0.109254 -0.125 0.3125 -0.0836194 -0.1875 0.3125 -0.0452545 -0.25 0.3125 -6.93889e-18 -0.3125 0.3125 0.0452545 -0.375 0.3125 0.0836194 -0.4375 0.3125 0.109254 -0.5 0.3125 0.118256 -0.5625 0.3125 0.109254 -0.625 0.3125 0.0836194 -0.6875 0.3125 0.0452545 -0.75 0.3125 2.08167e-17 -0.8125 0.3125 -0.0452545 -0.875 0.3125 -0.0836194 -0.9375 0.3125 -0.109254 -1 0.3125 -0.118256 - -0 0.375 -0.218508 -0.0625 0.375 -0.201875 -0.125 0.375 -0.154508 -0.1875 0.375 -0.0836194 -0.25 0.375 -1.38778e-17 -0.3125 0.375 0.0836194 -0.375 0.375 0.154508 -0.4375 0.375 0.201875 -0.5 0.375 0.218508 -0.5625 0.375 0.201875 -0.625 0.375 0.154508 -0.6875 0.375 0.0836194 -0.75 0.375 4.16334e-17 -0.8125 0.375 -0.0836194 -0.875 0.375 -0.154508 -0.9375 0.375 -0.201875 -1 0.375 -0.218508 - -0 0.4375 -0.285494 -0.0625 0.4375 -0.263763 -0.125 0.4375 -0.201875 -0.1875 0.4375 -0.109254 -0.25 0.4375 -2.77556e-17 -0.3125 0.4375 0.109254 -0.375 0.4375 0.201875 -0.4375 0.4375 0.263763 -0.5 0.4375 0.285494 -0.5625 0.4375 0.263763 -0.625 0.4375 0.201875 -0.6875 0.4375 0.109254 -0.75 0.4375 5.55112e-17 -0.8125 0.4375 -0.109254 -0.875 0.4375 -0.201875 -0.9375 0.4375 -0.263763 -1 0.4375 -0.285494 - -0 0.5 -0.309017 -0.0625 0.5 -0.285494 -0.125 0.5 -0.218508 -0.1875 0.5 -0.118256 -0.25 0.5 -2.77556e-17 -0.3125 0.5 0.118256 -0.375 0.5 0.218508 -0.4375 0.5 0.285494 -0.5 0.5 0.309017 -0.5625 0.5 0.285494 -0.625 0.5 0.218508 -0.6875 0.5 0.118256 -0.75 0.5 5.55112e-17 -0.8125 0.5 -0.118256 -0.875 0.5 -0.218508 -0.9375 0.5 -0.285494 -1 0.5 -0.309017 - -0 0.5625 -0.285494 -0.0625 0.5625 -0.263763 -0.125 0.5625 -0.201875 -0.1875 0.5625 -0.109254 -0.25 0.5625 -2.77556e-17 -0.3125 0.5625 0.109254 -0.375 0.5625 0.201875 -0.4375 0.5625 0.263763 -0.5 0.5625 0.285494 -0.5625 0.5625 0.263763 -0.625 0.5625 0.201875 -0.6875 0.5625 0.109254 -0.75 0.5625 5.55112e-17 -0.8125 0.5625 -0.109254 -0.875 0.5625 -0.201875 -0.9375 0.5625 -0.263763 -1 0.5625 -0.285494 - -0 0.625 -0.218508 -0.0625 0.625 -0.201875 -0.125 0.625 -0.154508 -0.1875 0.625 -0.0836194 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.0836194 -0.375 0.625 0.154508 -0.4375 0.625 0.201875 -0.5 0.625 0.218508 -0.5625 0.625 0.201875 -0.625 0.625 0.154508 -0.6875 0.625 0.0836194 -0.75 0.625 4.16334e-17 -0.8125 0.625 -0.0836194 -0.875 0.625 -0.154508 -0.9375 0.625 -0.201875 -1 0.625 -0.218508 - -0 0.6875 -0.118256 -0.0625 0.6875 -0.109254 -0.125 0.6875 -0.0836194 -0.1875 0.6875 -0.0452545 -0.25 0.6875 -6.93889e-18 -0.3125 0.6875 0.0452545 -0.375 0.6875 0.0836194 -0.4375 0.6875 0.109254 -0.5 0.6875 0.118256 -0.5625 0.6875 0.109254 -0.625 0.6875 0.0836194 -0.6875 0.6875 0.0452545 -0.75 0.6875 2.08167e-17 -0.8125 0.6875 -0.0452545 -0.875 0.6875 -0.0836194 -0.9375 0.6875 -0.109254 -1 0.6875 -0.118256 - -0 0.75 -5.55112e-17 -0.0625 0.75 -5.55112e-17 -0.125 0.75 -4.16334e-17 -0.1875 0.75 -2.08167e-17 -0.25 0.75 -6.16298e-33 -0.3125 0.75 1.38778e-17 -0.375 0.75 4.16334e-17 -0.4375 0.75 8.32667e-17 -0.5 0.75 5.55112e-17 -0.5625 0.75 5.55112e-17 -0.625 0.75 2.77556e-17 -0.6875 0.75 1.38778e-17 -0.75 0.75 1.2326e-32 -0.8125 0.75 -1.38778e-17 -0.875 0.75 -2.77556e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -5.55112e-17 - -0 0.8125 0.118256 -0.0625 0.8125 0.109254 -0.125 0.8125 0.0836194 -0.1875 0.8125 0.0452545 -0.25 0.8125 6.93889e-18 -0.3125 0.8125 -0.0452545 -0.375 0.8125 -0.0836194 -0.4375 0.8125 -0.109254 -0.5 0.8125 -0.118256 -0.5625 0.8125 -0.109254 -0.625 0.8125 -0.0836194 -0.6875 0.8125 -0.0452545 -0.75 0.8125 -2.08167e-17 -0.8125 0.8125 0.0452545 -0.875 0.8125 0.0836194 -0.9375 0.8125 0.109254 -1 0.8125 0.118256 - -0 0.875 0.218508 -0.0625 0.875 0.201875 -0.125 0.875 0.154508 -0.1875 0.875 0.0836194 -0.25 0.875 1.38778e-17 -0.3125 0.875 -0.0836194 -0.375 0.875 -0.154508 -0.4375 0.875 -0.201875 -0.5 0.875 -0.218508 -0.5625 0.875 -0.201875 -0.625 0.875 -0.154508 -0.6875 0.875 -0.0836194 -0.75 0.875 -4.16334e-17 -0.8125 0.875 0.0836194 -0.875 0.875 0.154508 -0.9375 0.875 0.201875 -1 0.875 0.218508 - -0 0.9375 0.285494 -0.0625 0.9375 0.263763 -0.125 0.9375 0.201875 -0.1875 0.9375 0.109254 -0.25 0.9375 2.77556e-17 -0.3125 0.9375 -0.109254 -0.375 0.9375 -0.201875 -0.4375 0.9375 -0.263763 -0.5 0.9375 -0.285494 -0.5625 0.9375 -0.263763 -0.625 0.9375 -0.201875 -0.6875 0.9375 -0.109254 -0.75 0.9375 -5.55112e-17 -0.8125 0.9375 0.109254 -0.875 0.9375 0.201875 -0.9375 0.9375 0.263763 -1 0.9375 0.285494 - -0 1 0.309017 -0.0625 1 0.285494 -0.125 1 0.218508 -0.1875 1 0.118256 -0.25 1 2.77556e-17 -0.3125 1 -0.118256 -0.375 1 -0.218508 -0.4375 1 -0.285494 -0.5 1 -0.309017 -0.5625 1 -0.285494 -0.625 1 -0.218508 -0.6875 1 -0.118256 -0.75 1 -5.55112e-17 -0.8125 1 0.118256 -0.875 1 0.218508 -0.9375 1 0.285494 -1 1 0.309017 - - -0 0 0.278991 -0.0625 0 0.257754 -0.125 0 0.197277 -0.1875 0 0.106765 -0.25 0 2.77556e-17 -0.3125 0 -0.106765 -0.375 0 -0.197277 -0.4375 0 -0.257754 -0.5 0 -0.278991 -0.5625 0 -0.257754 -0.625 0 -0.197277 -0.6875 0 -0.106765 -0.75 0 -5.55112e-17 -0.8125 0 0.106765 -0.875 0 0.197277 -0.9375 0 0.257754 -1 0 0.278991 - -0 0.0625 0.257754 -0.0625 0.0625 0.238134 -0.125 0.0625 0.18226 -0.1875 0.0625 0.0986383 -0.25 0.0625 2.60209e-17 -0.3125 0.0625 -0.0986383 -0.375 0.0625 -0.18226 -0.4375 0.0625 -0.238134 -0.5 0.0625 -0.257754 -0.5625 0.0625 -0.238134 -0.625 0.0625 -0.18226 -0.6875 0.0625 -0.0986383 -0.75 0.0625 -5.72459e-17 -0.8125 0.0625 0.0986383 -0.875 0.0625 0.18226 -0.9375 0.0625 0.238134 -1 0.0625 0.257754 - -0 0.125 0.197277 -0.0625 0.125 0.18226 -0.125 0.125 0.139496 -0.1875 0.125 0.0754944 -0.25 0.125 1.04083e-17 -0.3125 0.125 -0.0754944 -0.375 0.125 -0.139496 -0.4375 0.125 -0.18226 -0.5 0.125 -0.197277 -0.5625 0.125 -0.18226 -0.625 0.125 -0.139496 -0.6875 0.125 -0.0754944 -0.75 0.125 -4.51028e-17 -0.8125 0.125 0.0754944 -0.875 0.125 0.139496 -0.9375 0.125 0.18226 -1 0.125 0.197277 - -0 0.1875 0.106765 -0.0625 0.1875 0.0986383 -0.125 0.1875 0.0754944 -0.1875 0.1875 0.0408573 -0.25 0.1875 4.33681e-18 -0.3125 0.1875 -0.0408573 -0.375 0.1875 -0.0754944 -0.4375 0.1875 -0.0986383 -0.5 0.1875 -0.106765 -0.5625 0.1875 -0.0986383 -0.625 0.1875 -0.0754944 -0.6875 0.1875 -0.0408573 -0.75 0.1875 -2.34188e-17 -0.8125 0.1875 0.0408573 -0.875 0.1875 0.0754944 -0.9375 0.1875 0.0986383 -1 0.1875 0.106765 - -0 0.25 2.77556e-17 -0.0625 0.25 5.55112e-17 -0.125 0.25 0 -0.1875 0.25 6.93889e-18 -0.25 0.25 0 -0.3125 0.25 -6.93889e-18 -0.375 0.25 -1.38778e-17 -0.4375 0.25 -5.55112e-17 -0.5 0.25 -2.77556e-17 -0.5625 0.25 -2.77556e-17 -0.625 0.25 -2.77556e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 0 -0.8125 0.25 1.38778e-17 -0.875 0.25 1.38778e-17 -0.9375 0.25 2.77556e-17 -1 0.25 2.77556e-17 - -0 0.3125 -0.106765 -0.0625 0.3125 -0.0986383 -0.125 0.3125 -0.0754944 -0.1875 0.3125 -0.0408573 -0.25 0.3125 -6.93889e-18 -0.3125 0.3125 0.0408573 -0.375 0.3125 0.0754944 -0.4375 0.3125 0.0986383 -0.5 0.3125 0.106765 -0.5625 0.3125 0.0986383 -0.625 0.3125 0.0754944 -0.6875 0.3125 0.0408573 -0.75 0.3125 2.08167e-17 -0.8125 0.3125 -0.0408573 -0.875 0.3125 -0.0754944 -0.9375 0.3125 -0.0986383 -1 0.3125 -0.106765 - -0 0.375 -0.197277 -0.0625 0.375 -0.18226 -0.125 0.375 -0.139496 -0.1875 0.375 -0.0754944 -0.25 0.375 -1.38778e-17 -0.3125 0.375 0.0754944 -0.375 0.375 0.139496 -0.4375 0.375 0.18226 -0.5 0.375 0.197277 -0.5625 0.375 0.18226 -0.625 0.375 0.139496 -0.6875 0.375 0.0754944 -0.75 0.375 4.16334e-17 -0.8125 0.375 -0.0754944 -0.875 0.375 -0.139496 -0.9375 0.375 -0.18226 -1 0.375 -0.197277 - -0 0.4375 -0.257754 -0.0625 0.4375 -0.238134 -0.125 0.4375 -0.18226 -0.1875 0.4375 -0.0986383 -0.25 0.4375 -2.77556e-17 -0.3125 0.4375 0.0986383 -0.375 0.4375 0.18226 -0.4375 0.4375 0.238134 -0.5 0.4375 0.257754 -0.5625 0.4375 0.238134 -0.625 0.4375 0.18226 -0.6875 0.4375 0.0986383 -0.75 0.4375 5.55112e-17 -0.8125 0.4375 -0.0986383 -0.875 0.4375 -0.18226 -0.9375 0.4375 -0.238134 -1 0.4375 -0.257754 - -0 0.5 -0.278991 -0.0625 0.5 -0.257754 -0.125 0.5 -0.197277 -0.1875 0.5 -0.106765 -0.25 0.5 -2.77556e-17 -0.3125 0.5 0.106765 -0.375 0.5 0.197277 -0.4375 0.5 0.257754 -0.5 0.5 0.278991 -0.5625 0.5 0.257754 -0.625 0.5 0.197277 -0.6875 0.5 0.106765 -0.75 0.5 5.55112e-17 -0.8125 0.5 -0.106765 -0.875 0.5 -0.197277 -0.9375 0.5 -0.257754 -1 0.5 -0.278991 - -0 0.5625 -0.257754 -0.0625 0.5625 -0.238134 -0.125 0.5625 -0.18226 -0.1875 0.5625 -0.0986383 -0.25 0.5625 -2.77556e-17 -0.3125 0.5625 0.0986383 -0.375 0.5625 0.18226 -0.4375 0.5625 0.238134 -0.5 0.5625 0.257754 -0.5625 0.5625 0.238134 -0.625 0.5625 0.18226 -0.6875 0.5625 0.0986383 -0.75 0.5625 5.55112e-17 -0.8125 0.5625 -0.0986383 -0.875 0.5625 -0.18226 -0.9375 0.5625 -0.238134 -1 0.5625 -0.257754 - -0 0.625 -0.197277 -0.0625 0.625 -0.18226 -0.125 0.625 -0.139496 -0.1875 0.625 -0.0754944 -0.25 0.625 -1.38778e-17 -0.3125 0.625 0.0754944 -0.375 0.625 0.139496 -0.4375 0.625 0.18226 -0.5 0.625 0.197277 -0.5625 0.625 0.18226 -0.625 0.625 0.139496 -0.6875 0.625 0.0754944 -0.75 0.625 4.16334e-17 -0.8125 0.625 -0.0754944 -0.875 0.625 -0.139496 -0.9375 0.625 -0.18226 -1 0.625 -0.197277 - -0 0.6875 -0.106765 -0.0625 0.6875 -0.0986383 -0.125 0.6875 -0.0754944 -0.1875 0.6875 -0.0408573 -0.25 0.6875 -7.80626e-18 -0.3125 0.6875 0.0408573 -0.375 0.6875 0.0754944 -0.4375 0.6875 0.0986383 -0.5 0.6875 0.106765 -0.5625 0.6875 0.0986383 -0.625 0.6875 0.0754944 -0.6875 0.6875 0.0408573 -0.75 0.6875 1.99493e-17 -0.8125 0.6875 -0.0408573 -0.875 0.6875 -0.0754944 -0.9375 0.6875 -0.0986383 -1 0.6875 -0.106765 - -0 0.75 -5.55112e-17 -0.0625 0.75 -2.77556e-17 -0.125 0.75 -5.55112e-17 -0.1875 0.75 -2.08167e-17 -0.25 0.75 0 -0.3125 0.75 2.08167e-17 -0.375 0.75 4.16334e-17 -0.4375 0.75 2.77556e-17 -0.5 0.75 5.55112e-17 -0.5625 0.75 5.55112e-17 -0.625 0.75 2.77556e-17 -0.6875 0.75 1.38778e-17 -0.75 0.75 1.2326e-32 -0.8125 0.75 -1.38778e-17 -0.875 0.75 -4.16334e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -5.55112e-17 - -0 0.8125 0.106765 -0.0625 0.8125 0.0986383 -0.125 0.8125 0.0754944 -0.1875 0.8125 0.0408573 -0.25 0.8125 6.93889e-18 -0.3125 0.8125 -0.0408573 -0.375 0.8125 -0.0754944 -0.4375 0.8125 -0.0986383 -0.5 0.8125 -0.106765 -0.5625 0.8125 -0.0986383 -0.625 0.8125 -0.0754944 -0.6875 0.8125 -0.0408573 -0.75 0.8125 -2.08167e-17 -0.8125 0.8125 0.0408573 -0.875 0.8125 0.0754944 -0.9375 0.8125 0.0986383 -1 0.8125 0.106765 - -0 0.875 0.197277 -0.0625 0.875 0.18226 -0.125 0.875 0.139496 -0.1875 0.875 0.0754944 -0.25 0.875 1.38778e-17 -0.3125 0.875 -0.0754944 -0.375 0.875 -0.139496 -0.4375 0.875 -0.18226 -0.5 0.875 -0.197277 -0.5625 0.875 -0.18226 -0.625 0.875 -0.139496 -0.6875 0.875 -0.0754944 -0.75 0.875 -4.16334e-17 -0.8125 0.875 0.0754944 -0.875 0.875 0.139496 -0.9375 0.875 0.18226 -1 0.875 0.197277 - -0 0.9375 0.257754 -0.0625 0.9375 0.238134 -0.125 0.9375 0.18226 -0.1875 0.9375 0.0986383 -0.25 0.9375 2.77556e-17 -0.3125 0.9375 -0.0986383 -0.375 0.9375 -0.18226 -0.4375 0.9375 -0.238134 -0.5 0.9375 -0.257754 -0.5625 0.9375 -0.238134 -0.625 0.9375 -0.18226 -0.6875 0.9375 -0.0986383 -0.75 0.9375 -5.55112e-17 -0.8125 0.9375 0.0986383 -0.875 0.9375 0.18226 -0.9375 0.9375 0.238134 -1 0.9375 0.257754 - -0 1 0.278991 -0.0625 1 0.257754 -0.125 1 0.197277 -0.1875 1 0.106765 -0.25 1 2.77556e-17 -0.3125 1 -0.106765 -0.375 1 -0.197277 -0.4375 1 -0.257754 -0.5 1 -0.278991 -0.5625 1 -0.257754 -0.625 1 -0.197277 -0.6875 1 -0.106765 -0.75 1 -5.55112e-17 -0.8125 1 0.106765 -0.875 1 0.197277 -0.9375 1 0.257754 -1 1 0.278991 - - -0 0 0.24869 -0.0625 0 0.229759 -0.125 0 0.17585 -0.1875 0 0.0951695 -0.25 0 1.38778e-17 -0.3125 0 -0.0951695 -0.375 0 -0.17585 -0.4375 0 -0.229759 -0.5 0 -0.24869 -0.5625 0 -0.229759 -0.625 0 -0.17585 -0.6875 0 -0.0951695 -0.75 0 -4.16334e-17 -0.8125 0 0.0951695 -0.875 0 0.17585 -0.9375 0 0.229759 -1 0 0.24869 - -0 0.0625 0.229759 -0.0625 0.0625 0.21227 -0.125 0.0625 0.162464 -0.1875 0.0625 0.0879252 -0.25 0.0625 1.21431e-17 -0.3125 0.0625 -0.0879252 -0.375 0.0625 -0.162464 -0.4375 0.0625 -0.21227 -0.5 0.0625 -0.229759 -0.5625 0.0625 -0.21227 -0.625 0.0625 -0.162464 -0.6875 0.0625 -0.0879252 -0.75 0.0625 -4.33681e-17 -0.8125 0.0625 0.0879252 -0.875 0.0625 0.162464 -0.9375 0.0625 0.21227 -1 0.0625 0.229759 - -0 0.125 0.17585 -0.0625 0.125 0.162464 -0.125 0.125 0.124345 -0.1875 0.125 0.067295 -0.25 0.125 1.04083e-17 -0.3125 0.125 -0.067295 -0.375 0.125 -0.124345 -0.4375 0.125 -0.162464 -0.5 0.125 -0.17585 -0.5625 0.125 -0.162464 -0.625 0.125 -0.124345 -0.6875 0.125 -0.067295 -0.75 0.125 -3.1225e-17 -0.8125 0.125 0.067295 -0.875 0.125 0.124345 -0.9375 0.125 0.162464 -1 0.125 0.17585 - -0 0.1875 0.0951695 -0.0625 0.1875 0.0879252 -0.125 0.1875 0.067295 -0.1875 0.1875 0.0364198 -0.25 0.1875 4.77049e-18 -0.3125 0.1875 -0.0364198 -0.375 0.1875 -0.067295 -0.4375 0.1875 -0.0879252 -0.5 0.1875 -0.0951695 -0.5625 0.1875 -0.0879252 -0.625 0.1875 -0.067295 -0.6875 0.1875 -0.0364198 -0.75 0.1875 -2.29851e-17 -0.8125 0.1875 0.0364198 -0.875 0.1875 0.067295 -0.9375 0.1875 0.0879252 -1 0.1875 0.0951695 - -0 0.25 1.38778e-17 -0.0625 0.25 1.38778e-17 -0.125 0.25 1.38778e-17 -0.1875 0.25 6.93889e-18 -0.25 0.25 1.54074e-33 -0.3125 0.25 -6.93889e-18 -0.375 0.25 -1.38778e-17 -0.4375 0.25 -1.38778e-17 -0.5 0.25 -1.38778e-17 -0.5625 0.25 -2.77556e-17 -0.625 0.25 -2.77556e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 -3.08149e-33 -0.8125 0.25 6.93889e-18 -0.875 0.25 2.77556e-17 -0.9375 0.25 0 -1 0.25 1.38778e-17 - -0 0.3125 -0.0951695 -0.0625 0.3125 -0.0879252 -0.125 0.3125 -0.067295 -0.1875 0.3125 -0.0364198 -0.25 0.3125 -6.93889e-18 -0.3125 0.3125 0.0364198 -0.375 0.3125 0.067295 -0.4375 0.3125 0.0879252 -0.5 0.3125 0.0951695 -0.5625 0.3125 0.0879252 -0.625 0.3125 0.067295 -0.6875 0.3125 0.0364198 -0.75 0.3125 2.08167e-17 -0.8125 0.3125 -0.0364198 -0.875 0.3125 -0.067295 -0.9375 0.3125 -0.0879252 -1 0.3125 -0.0951695 - -0 0.375 -0.17585 -0.0625 0.375 -0.162464 -0.125 0.375 -0.124345 -0.1875 0.375 -0.067295 -0.25 0.375 -1.38778e-17 -0.3125 0.375 0.067295 -0.375 0.375 0.124345 -0.4375 0.375 0.162464 -0.5 0.375 0.17585 -0.5625 0.375 0.162464 -0.625 0.375 0.124345 -0.6875 0.375 0.067295 -0.75 0.375 2.77556e-17 -0.8125 0.375 -0.067295 -0.875 0.375 -0.124345 -0.9375 0.375 -0.162464 -1 0.375 -0.17585 - -0 0.4375 -0.229759 -0.0625 0.4375 -0.21227 -0.125 0.4375 -0.162464 -0.1875 0.4375 -0.0879252 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 0.0879252 -0.375 0.4375 0.162464 -0.4375 0.4375 0.21227 -0.5 0.4375 0.229759 -0.5625 0.4375 0.21227 -0.625 0.4375 0.162464 -0.6875 0.4375 0.0879252 -0.75 0.4375 4.16334e-17 -0.8125 0.4375 -0.0879252 -0.875 0.4375 -0.162464 -0.9375 0.4375 -0.21227 -1 0.4375 -0.229759 - -0 0.5 -0.24869 -0.0625 0.5 -0.229759 -0.125 0.5 -0.17585 -0.1875 0.5 -0.0951695 -0.25 0.5 -1.38778e-17 -0.3125 0.5 0.0951695 -0.375 0.5 0.17585 -0.4375 0.5 0.229759 -0.5 0.5 0.24869 -0.5625 0.5 0.229759 -0.625 0.5 0.17585 -0.6875 0.5 0.0951695 -0.75 0.5 4.16334e-17 -0.8125 0.5 -0.0951695 -0.875 0.5 -0.17585 -0.9375 0.5 -0.229759 -1 0.5 -0.24869 - -0 0.5625 -0.229759 -0.0625 0.5625 -0.21227 -0.125 0.5625 -0.162464 -0.1875 0.5625 -0.0879252 -0.25 0.5625 -1.56125e-17 -0.3125 0.5625 0.0879252 -0.375 0.5625 0.162464 -0.4375 0.5625 0.21227 -0.5 0.5625 0.229759 -0.5625 0.5625 0.21227 -0.625 0.5625 0.162464 -0.6875 0.5625 0.0879252 -0.75 0.5625 3.98986e-17 -0.8125 0.5625 -0.0879252 -0.875 0.5625 -0.162464 -0.9375 0.5625 -0.21227 -1 0.5625 -0.229759 - -0 0.625 -0.17585 -0.0625 0.625 -0.162464 -0.125 0.625 -0.124345 -0.1875 0.625 -0.067295 -0.25 0.625 -1.73472e-17 -0.3125 0.625 0.067295 -0.375 0.625 0.124345 -0.4375 0.625 0.162464 -0.5 0.625 0.17585 -0.5625 0.625 0.162464 -0.625 0.625 0.124345 -0.6875 0.625 0.067295 -0.75 0.625 2.42861e-17 -0.8125 0.625 -0.067295 -0.875 0.625 -0.124345 -0.9375 0.625 -0.162464 -1 0.625 -0.17585 - -0 0.6875 -0.0951695 -0.0625 0.6875 -0.0879252 -0.125 0.6875 -0.067295 -0.1875 0.6875 -0.0364198 -0.25 0.6875 -8.67362e-18 -0.3125 0.6875 0.0364198 -0.375 0.6875 0.067295 -0.4375 0.6875 0.0879252 -0.5 0.6875 0.0951695 -0.5625 0.6875 0.0879252 -0.625 0.6875 0.067295 -0.6875 0.6875 0.0364198 -0.75 0.6875 1.9082e-17 -0.8125 0.6875 -0.0364198 -0.875 0.6875 -0.067295 -0.9375 0.6875 -0.0879252 -1 0.6875 -0.0951695 - -0 0.75 -4.16334e-17 -0.0625 0.75 -4.16334e-17 -0.125 0.75 -2.77556e-17 -0.1875 0.75 -1.38778e-17 -0.25 0.75 -3.08149e-33 -0.3125 0.75 1.38778e-17 -0.375 0.75 2.77556e-17 -0.4375 0.75 4.16334e-17 -0.5 0.75 4.16334e-17 -0.5625 0.75 2.77556e-17 -0.625 0.75 1.38778e-17 -0.6875 0.75 6.93889e-18 -0.75 0.75 9.24446e-33 -0.8125 0.75 -1.38778e-17 -0.875 0.75 -1.38778e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -4.16334e-17 - -0 0.8125 0.0951695 -0.0625 0.8125 0.0879252 -0.125 0.8125 0.067295 -0.1875 0.8125 0.0364198 -0.25 0.8125 6.93889e-18 -0.3125 0.8125 -0.0364198 -0.375 0.8125 -0.067295 -0.4375 0.8125 -0.0879252 -0.5 0.8125 -0.0951695 -0.5625 0.8125 -0.0879252 -0.625 0.8125 -0.067295 -0.6875 0.8125 -0.0364198 -0.75 0.8125 -2.08167e-17 -0.8125 0.8125 0.0364198 -0.875 0.8125 0.067295 -0.9375 0.8125 0.0879252 -1 0.8125 0.0951695 - -0 0.875 0.17585 -0.0625 0.875 0.162464 -0.125 0.875 0.124345 -0.1875 0.875 0.067295 -0.25 0.875 1.38778e-17 -0.3125 0.875 -0.067295 -0.375 0.875 -0.124345 -0.4375 0.875 -0.162464 -0.5 0.875 -0.17585 -0.5625 0.875 -0.162464 -0.625 0.875 -0.124345 -0.6875 0.875 -0.067295 -0.75 0.875 -2.77556e-17 -0.8125 0.875 0.067295 -0.875 0.875 0.124345 -0.9375 0.875 0.162464 -1 0.875 0.17585 - -0 0.9375 0.229759 -0.0625 0.9375 0.21227 -0.125 0.9375 0.162464 -0.1875 0.9375 0.0879252 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 -0.0879252 -0.375 0.9375 -0.162464 -0.4375 0.9375 -0.21227 -0.5 0.9375 -0.229759 -0.5625 0.9375 -0.21227 -0.625 0.9375 -0.162464 -0.6875 0.9375 -0.0879252 -0.75 0.9375 -4.16334e-17 -0.8125 0.9375 0.0879252 -0.875 0.9375 0.162464 -0.9375 0.9375 0.21227 -1 0.9375 0.229759 - -0 1 0.24869 -0.0625 1 0.229759 -0.125 1 0.17585 -0.1875 1 0.0951695 -0.25 1 1.38778e-17 -0.3125 1 -0.0951695 -0.375 1 -0.17585 -0.4375 1 -0.229759 -0.5 1 -0.24869 -0.5625 1 -0.229759 -0.625 1 -0.17585 -0.6875 1 -0.0951695 -0.75 1 -4.16334e-17 -0.8125 1 0.0951695 -0.875 1 0.17585 -0.9375 1 0.229759 -1 1 0.24869 - - -0 0 0.218143 -0.0625 0 0.201538 -0.125 0 0.154251 -0.1875 0 0.0834798 -0.25 0 0 -0.3125 0 -0.0834798 -0.375 0 -0.154251 -0.4375 0 -0.201538 -0.5 0 -0.218143 -0.5625 0 -0.201538 -0.625 0 -0.154251 -0.6875 0 -0.0834798 -0.75 0 -5.55112e-17 -0.8125 0 0.0834798 -0.875 0 0.154251 -0.9375 0 0.201538 -1 0 0.218143 - -0 0.0625 0.201538 -0.0625 0.0625 0.186197 -0.125 0.0625 0.142509 -0.1875 0.0625 0.0771253 -0.25 0.0625 5.20417e-18 -0.3125 0.0625 -0.0771253 -0.375 0.0625 -0.142509 -0.4375 0.0625 -0.186197 -0.5 0.0625 -0.201538 -0.5625 0.0625 -0.186197 -0.625 0.0625 -0.142509 -0.6875 0.0625 -0.0771253 -0.75 0.0625 -5.0307e-17 -0.8125 0.0625 0.0771253 -0.875 0.0625 0.142509 -0.9375 0.0625 0.186197 -1 0.0625 0.201538 - -0 0.125 0.154251 -0.0625 0.125 0.142509 -0.125 0.125 0.109072 -0.1875 0.125 0.0590291 -0.25 0.125 1.04083e-17 -0.3125 0.125 -0.0590291 -0.375 0.125 -0.109072 -0.4375 0.125 -0.142509 -0.5 0.125 -0.154251 -0.5625 0.125 -0.142509 -0.625 0.125 -0.109072 -0.6875 0.125 -0.0590291 -0.75 0.125 -3.1225e-17 -0.8125 0.125 0.0590291 -0.875 0.125 0.109072 -0.9375 0.125 0.142509 -1 0.125 0.154251 - -0 0.1875 0.0834798 -0.0625 0.1875 0.0771253 -0.125 0.1875 0.0590291 -0.1875 0.1875 0.0319463 -0.25 0.1875 5.20417e-18 -0.3125 0.1875 -0.0319463 -0.375 0.1875 -0.0590291 -0.4375 0.1875 -0.0771253 -0.5 0.1875 -0.0834798 -0.5625 0.1875 -0.0771253 -0.625 0.1875 -0.0590291 -0.6875 0.1875 -0.0319463 -0.75 0.1875 -1.56125e-17 -0.8125 0.1875 0.0319463 -0.875 0.1875 0.0590291 -0.9375 0.1875 0.0771253 -1 0.1875 0.0834798 - -0 0.25 0 -0.0625 0.25 1.38778e-17 -0.125 0.25 1.38778e-17 -0.1875 0.25 6.93889e-18 -0.25 0.25 0 -0.3125 0.25 -6.93889e-18 -0.375 0.25 -1.38778e-17 -0.4375 0.25 -1.38778e-17 -0.5 0.25 -2.77556e-17 -0.5625 0.25 0 -0.625 0.25 -2.77556e-17 -0.6875 0.25 -1.38778e-17 -0.75 0.25 0 -0.8125 0.25 1.38778e-17 -0.875 0.25 1.38778e-17 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 -0.0834798 -0.0625 0.3125 -0.0771253 -0.125 0.3125 -0.0590291 -0.1875 0.3125 -0.0319463 -0.25 0.3125 -3.46945e-18 -0.3125 0.3125 0.0319463 -0.375 0.3125 0.0590291 -0.4375 0.3125 0.0771253 -0.5 0.3125 0.0834798 -0.5625 0.3125 0.0771253 -0.625 0.3125 0.0590291 -0.6875 0.3125 0.0319463 -0.75 0.3125 1.73472e-17 -0.8125 0.3125 -0.0319463 -0.875 0.3125 -0.0590291 -0.9375 0.3125 -0.0771253 -1 0.3125 -0.0834798 - -0 0.375 -0.154251 -0.0625 0.375 -0.142509 -0.125 0.375 -0.109072 -0.1875 0.375 -0.0590291 -0.25 0.375 -6.93889e-18 -0.3125 0.375 0.0590291 -0.375 0.375 0.109072 -0.4375 0.375 0.142509 -0.5 0.375 0.154251 -0.5625 0.375 0.142509 -0.625 0.375 0.109072 -0.6875 0.375 0.0590291 -0.75 0.375 3.46945e-17 -0.8125 0.375 -0.0590291 -0.875 0.375 -0.109072 -0.9375 0.375 -0.142509 -1 0.375 -0.154251 - -0 0.4375 -0.201538 -0.0625 0.4375 -0.186197 -0.125 0.4375 -0.142509 -0.1875 0.4375 -0.0771253 -0.25 0.4375 -3.46945e-18 -0.3125 0.4375 0.0771253 -0.375 0.4375 0.142509 -0.4375 0.4375 0.186197 -0.5 0.4375 0.201538 -0.5625 0.4375 0.186197 -0.625 0.4375 0.142509 -0.6875 0.4375 0.0771253 -0.75 0.4375 5.20417e-17 -0.8125 0.4375 -0.0771253 -0.875 0.4375 -0.142509 -0.9375 0.4375 -0.186197 -1 0.4375 -0.201538 - -0 0.5 -0.218143 -0.0625 0.5 -0.201538 -0.125 0.5 -0.154251 -0.1875 0.5 -0.0834798 -0.25 0.5 0 -0.3125 0.5 0.0834798 -0.375 0.5 0.154251 -0.4375 0.5 0.201538 -0.5 0.5 0.218143 -0.5625 0.5 0.201538 -0.625 0.5 0.154251 -0.6875 0.5 0.0834798 -0.75 0.5 5.55112e-17 -0.8125 0.5 -0.0834798 -0.875 0.5 -0.154251 -0.9375 0.5 -0.201538 -1 0.5 -0.218143 - -0 0.5625 -0.201538 -0.0625 0.5625 -0.186197 -0.125 0.5625 -0.142509 -0.1875 0.5625 -0.0771253 -0.25 0.5625 -1.73472e-18 -0.3125 0.5625 0.0771253 -0.375 0.5625 0.142509 -0.4375 0.5625 0.186197 -0.5 0.5625 0.201538 -0.5625 0.5625 0.186197 -0.625 0.5625 0.142509 -0.6875 0.5625 0.0771253 -0.75 0.5625 5.37764e-17 -0.8125 0.5625 -0.0771253 -0.875 0.5625 -0.142509 -0.9375 0.5625 -0.186197 -1 0.5625 -0.201538 - -0 0.625 -0.154251 -0.0625 0.625 -0.142509 -0.125 0.625 -0.109072 -0.1875 0.625 -0.0590291 -0.25 0.625 -3.46945e-18 -0.3125 0.625 0.0590291 -0.375 0.625 0.109072 -0.4375 0.625 0.142509 -0.5 0.625 0.154251 -0.5625 0.625 0.142509 -0.625 0.625 0.109072 -0.6875 0.625 0.0590291 -0.75 0.625 3.81639e-17 -0.8125 0.625 -0.0590291 -0.875 0.625 -0.109072 -0.9375 0.625 -0.142509 -1 0.625 -0.154251 - -0 0.6875 -0.0834798 -0.0625 0.6875 -0.0771253 -0.125 0.6875 -0.0590291 -0.1875 0.6875 -0.0319463 -0.25 0.6875 -2.1684e-18 -0.3125 0.6875 0.0319463 -0.375 0.6875 0.0590291 -0.4375 0.6875 0.0771253 -0.5 0.6875 0.0834798 -0.5625 0.6875 0.0771253 -0.625 0.6875 0.0590291 -0.6875 0.6875 0.0319463 -0.75 0.6875 1.86483e-17 -0.8125 0.6875 -0.0319463 -0.875 0.6875 -0.0590291 -0.9375 0.6875 -0.0771253 -1 0.6875 -0.0834798 - -0 0.75 -5.55112e-17 -0.0625 0.75 -4.16334e-17 -0.125 0.75 -2.77556e-17 -0.1875 0.75 -1.38778e-17 -0.25 0.75 -3.08149e-33 -0.3125 0.75 1.38778e-17 -0.375 0.75 2.77556e-17 -0.4375 0.75 4.16334e-17 -0.5 0.75 2.77556e-17 -0.5625 0.75 5.55112e-17 -0.625 0.75 1.38778e-17 -0.6875 0.75 6.93889e-18 -0.75 0.75 6.16298e-33 -0.8125 0.75 -6.93889e-18 -0.875 0.75 -2.77556e-17 -0.9375 0.75 -5.55112e-17 -1 0.75 -5.55112e-17 - -0 0.8125 0.0834798 -0.0625 0.8125 0.0771253 -0.125 0.8125 0.0590291 -0.1875 0.8125 0.0319463 -0.25 0.8125 3.46945e-18 -0.3125 0.8125 -0.0319463 -0.375 0.8125 -0.0590291 -0.4375 0.8125 -0.0771253 -0.5 0.8125 -0.0834798 -0.5625 0.8125 -0.0771253 -0.625 0.8125 -0.0590291 -0.6875 0.8125 -0.0319463 -0.75 0.8125 -1.73472e-17 -0.8125 0.8125 0.0319463 -0.875 0.8125 0.0590291 -0.9375 0.8125 0.0771253 -1 0.8125 0.0834798 - -0 0.875 0.154251 -0.0625 0.875 0.142509 -0.125 0.875 0.109072 -0.1875 0.875 0.0590291 -0.25 0.875 6.93889e-18 -0.3125 0.875 -0.0590291 -0.375 0.875 -0.109072 -0.4375 0.875 -0.142509 -0.5 0.875 -0.154251 -0.5625 0.875 -0.142509 -0.625 0.875 -0.109072 -0.6875 0.875 -0.0590291 -0.75 0.875 -3.46945e-17 -0.8125 0.875 0.0590291 -0.875 0.875 0.109072 -0.9375 0.875 0.142509 -1 0.875 0.154251 - -0 0.9375 0.201538 -0.0625 0.9375 0.186197 -0.125 0.9375 0.142509 -0.1875 0.9375 0.0771253 -0.25 0.9375 3.46945e-18 -0.3125 0.9375 -0.0771253 -0.375 0.9375 -0.142509 -0.4375 0.9375 -0.186197 -0.5 0.9375 -0.201538 -0.5625 0.9375 -0.186197 -0.625 0.9375 -0.142509 -0.6875 0.9375 -0.0771253 -0.75 0.9375 -5.20417e-17 -0.8125 0.9375 0.0771253 -0.875 0.9375 0.142509 -0.9375 0.9375 0.186197 -1 0.9375 0.201538 - -0 1 0.218143 -0.0625 1 0.201538 -0.125 1 0.154251 -0.1875 1 0.0834798 -0.25 1 0 -0.3125 1 -0.0834798 -0.375 1 -0.154251 -0.4375 1 -0.201538 -0.5 1 -0.218143 -0.5625 1 -0.201538 -0.625 1 -0.154251 -0.6875 1 -0.0834798 -0.75 1 -5.55112e-17 -0.8125 1 0.0834798 -0.875 1 0.154251 -0.9375 1 0.201538 -1 1 0.218143 - - -0 0 0.187381 -0.0625 0 0.173118 -0.125 0 0.132499 -0.1875 0 0.0717077 -0.25 0 2.77556e-17 -0.3125 0 -0.0717077 -0.375 0 -0.132499 -0.4375 0 -0.173118 -0.5 0 -0.187381 -0.5625 0 -0.173118 -0.625 0 -0.132499 -0.6875 0 -0.0717077 -0.75 0 -1.38778e-17 -0.8125 0 0.0717077 -0.875 0 0.132499 -0.9375 0 0.173118 -1 0 0.187381 - -0 0.0625 0.173118 -0.0625 0.0625 0.15994 -0.125 0.0625 0.122413 -0.1875 0.0625 0.0662493 -0.25 0.0625 2.60209e-17 -0.3125 0.0625 -0.0662493 -0.375 0.0625 -0.122413 -0.4375 0.0625 -0.15994 -0.5 0.0625 -0.173118 -0.5625 0.0625 -0.15994 -0.625 0.0625 -0.122413 -0.6875 0.0625 -0.0662493 -0.75 0.0625 -1.56125e-17 -0.8125 0.0625 0.0662493 -0.875 0.0625 0.122413 -0.9375 0.0625 0.15994 -1 0.0625 0.173118 - -0 0.125 0.132499 -0.0625 0.125 0.122413 -0.125 0.125 0.0936907 -0.1875 0.125 0.050705 -0.25 0.125 2.42861e-17 -0.3125 0.125 -0.050705 -0.375 0.125 -0.0936907 -0.4375 0.125 -0.122413 -0.5 0.125 -0.132499 -0.5625 0.125 -0.122413 -0.625 0.125 -0.0936907 -0.6875 0.125 -0.050705 -0.75 0.125 -1.73472e-17 -0.8125 0.125 0.050705 -0.875 0.125 0.0936907 -0.9375 0.125 0.122413 -1 0.125 0.132499 - -0 0.1875 0.0717077 -0.0625 0.1875 0.0662493 -0.125 0.1875 0.050705 -0.1875 0.1875 0.0274414 -0.25 0.1875 1.25767e-17 -0.3125 0.1875 -0.0274414 -0.375 0.1875 -0.050705 -0.4375 0.1875 -0.0662493 -0.5 0.1875 -0.0717077 -0.5625 0.1875 -0.0662493 -0.625 0.1875 -0.050705 -0.6875 0.1875 -0.0274414 -0.75 0.1875 -8.23994e-18 -0.8125 0.1875 0.0274414 -0.875 0.1875 0.050705 -0.9375 0.1875 0.0662493 -1 0.1875 0.0717077 - -0 0.25 2.77556e-17 -0.0625 0.25 0 -0.125 0.25 1.38778e-17 -0.1875 0.25 6.93889e-18 -0.25 0.25 0 -0.3125 0.25 -1.38778e-17 -0.375 0.25 -1.38778e-17 -0.4375 0.25 0 -0.5 0.25 -2.77556e-17 -0.5625 0.25 0 -0.625 0.25 0 -0.6875 0.25 -6.93889e-18 -0.75 0.25 -3.08149e-33 -0.8125 0.25 6.93889e-18 -0.875 0.25 0 -0.9375 0.25 0 -1 0.25 2.77556e-17 - -0 0.3125 -0.0717077 -0.0625 0.3125 -0.0662493 -0.125 0.3125 -0.050705 -0.1875 0.3125 -0.0274414 -0.25 0.3125 -1.04083e-17 -0.3125 0.3125 0.0274414 -0.375 0.3125 0.050705 -0.4375 0.3125 0.0662493 -0.5 0.3125 0.0717077 -0.5625 0.3125 0.0662493 -0.625 0.3125 0.050705 -0.6875 0.3125 0.0274414 -0.75 0.3125 1.04083e-17 -0.8125 0.3125 -0.0274414 -0.875 0.3125 -0.050705 -0.9375 0.3125 -0.0662493 -1 0.3125 -0.0717077 - -0 0.375 -0.132499 -0.0625 0.375 -0.122413 -0.125 0.375 -0.0936907 -0.1875 0.375 -0.050705 -0.25 0.375 -2.08167e-17 -0.3125 0.375 0.050705 -0.375 0.375 0.0936907 -0.4375 0.375 0.122413 -0.5 0.375 0.132499 -0.5625 0.375 0.122413 -0.625 0.375 0.0936907 -0.6875 0.375 0.050705 -0.75 0.375 2.08167e-17 -0.8125 0.375 -0.050705 -0.875 0.375 -0.0936907 -0.9375 0.375 -0.122413 -1 0.375 -0.132499 - -0 0.4375 -0.173118 -0.0625 0.4375 -0.15994 -0.125 0.4375 -0.122413 -0.1875 0.4375 -0.0662493 -0.25 0.4375 -2.42861e-17 -0.3125 0.4375 0.0662493 -0.375 0.4375 0.122413 -0.4375 0.4375 0.15994 -0.5 0.4375 0.173118 -0.5625 0.4375 0.15994 -0.625 0.4375 0.122413 -0.6875 0.4375 0.0662493 -0.75 0.4375 1.73472e-17 -0.8125 0.4375 -0.0662493 -0.875 0.4375 -0.122413 -0.9375 0.4375 -0.15994 -1 0.4375 -0.173118 - -0 0.5 -0.187381 -0.0625 0.5 -0.173118 -0.125 0.5 -0.132499 -0.1875 0.5 -0.0717077 -0.25 0.5 -2.77556e-17 -0.3125 0.5 0.0717077 -0.375 0.5 0.132499 -0.4375 0.5 0.173118 -0.5 0.5 0.187381 -0.5625 0.5 0.173118 -0.625 0.5 0.132499 -0.6875 0.5 0.0717077 -0.75 0.5 1.38778e-17 -0.8125 0.5 -0.0717077 -0.875 0.5 -0.132499 -0.9375 0.5 -0.173118 -1 0.5 -0.187381 - -0 0.5625 -0.173118 -0.0625 0.5625 -0.15994 -0.125 0.5625 -0.122413 -0.1875 0.5625 -0.0662493 -0.25 0.5625 -2.42861e-17 -0.3125 0.5625 0.0662493 -0.375 0.5625 0.122413 -0.4375 0.5625 0.15994 -0.5 0.5625 0.173118 -0.5625 0.5625 0.15994 -0.625 0.5625 0.122413 -0.6875 0.5625 0.0662493 -0.75 0.5625 1.73472e-17 -0.8125 0.5625 -0.0662493 -0.875 0.5625 -0.122413 -0.9375 0.5625 -0.15994 -1 0.5625 -0.173118 - -0 0.625 -0.132499 -0.0625 0.625 -0.122413 -0.125 0.625 -0.0936907 -0.1875 0.625 -0.050705 -0.25 0.625 -2.08167e-17 -0.3125 0.625 0.050705 -0.375 0.625 0.0936907 -0.4375 0.625 0.122413 -0.5 0.625 0.132499 -0.5625 0.625 0.122413 -0.625 0.625 0.0936907 -0.6875 0.625 0.050705 -0.75 0.625 2.08167e-17 -0.8125 0.625 -0.050705 -0.875 0.625 -0.0936907 -0.9375 0.625 -0.122413 -1 0.625 -0.132499 - -0 0.6875 -0.0717077 -0.0625 0.6875 -0.0662493 -0.125 0.6875 -0.050705 -0.1875 0.6875 -0.0274414 -0.25 0.6875 -1.04083e-17 -0.3125 0.6875 0.0274414 -0.375 0.6875 0.050705 -0.4375 0.6875 0.0662493 -0.5 0.6875 0.0717077 -0.5625 0.6875 0.0662493 -0.625 0.6875 0.050705 -0.6875 0.6875 0.0274414 -0.75 0.6875 1.04083e-17 -0.8125 0.6875 -0.0274414 -0.875 0.6875 -0.050705 -0.9375 0.6875 -0.0662493 -1 0.6875 -0.0717077 - -0 0.75 -1.38778e-17 -0.0625 0.75 -4.16334e-17 -0.125 0.75 -2.77556e-17 -0.1875 0.75 -1.38778e-17 -0.25 0.75 -3.08149e-33 -0.3125 0.75 6.93889e-18 -0.375 0.75 2.77556e-17 -0.4375 0.75 4.16334e-17 -0.5 0.75 1.38778e-17 -0.5625 0.75 4.16334e-17 -0.625 0.75 4.16334e-17 -0.6875 0.75 1.38778e-17 -0.75 0.75 6.16298e-33 -0.8125 0.75 -1.38778e-17 -0.875 0.75 -2.77556e-17 -0.9375 0.75 -4.16334e-17 -1 0.75 -1.38778e-17 - -0 0.8125 0.0717077 -0.0625 0.8125 0.0662493 -0.125 0.8125 0.050705 -0.1875 0.8125 0.0274414 -0.25 0.8125 1.04083e-17 -0.3125 0.8125 -0.0274414 -0.375 0.8125 -0.050705 -0.4375 0.8125 -0.0662493 -0.5 0.8125 -0.0717077 -0.5625 0.8125 -0.0662493 -0.625 0.8125 -0.050705 -0.6875 0.8125 -0.0274414 -0.75 0.8125 -1.04083e-17 -0.8125 0.8125 0.0274414 -0.875 0.8125 0.050705 -0.9375 0.8125 0.0662493 -1 0.8125 0.0717077 - -0 0.875 0.132499 -0.0625 0.875 0.122413 -0.125 0.875 0.0936907 -0.1875 0.875 0.050705 -0.25 0.875 2.08167e-17 -0.3125 0.875 -0.050705 -0.375 0.875 -0.0936907 -0.4375 0.875 -0.122413 -0.5 0.875 -0.132499 -0.5625 0.875 -0.122413 -0.625 0.875 -0.0936907 -0.6875 0.875 -0.050705 -0.75 0.875 -2.08167e-17 -0.8125 0.875 0.050705 -0.875 0.875 0.0936907 -0.9375 0.875 0.122413 -1 0.875 0.132499 - -0 0.9375 0.173118 -0.0625 0.9375 0.15994 -0.125 0.9375 0.122413 -0.1875 0.9375 0.0662493 -0.25 0.9375 2.42861e-17 -0.3125 0.9375 -0.0662493 -0.375 0.9375 -0.122413 -0.4375 0.9375 -0.15994 -0.5 0.9375 -0.173118 -0.5625 0.9375 -0.15994 -0.625 0.9375 -0.122413 -0.6875 0.9375 -0.0662493 -0.75 0.9375 -1.73472e-17 -0.8125 0.9375 0.0662493 -0.875 0.9375 0.122413 -0.9375 0.9375 0.15994 -1 0.9375 0.173118 - -0 1 0.187381 -0.0625 1 0.173118 -0.125 1 0.132499 -0.1875 1 0.0717077 -0.25 1 2.77556e-17 -0.3125 1 -0.0717077 -0.375 1 -0.132499 -0.4375 1 -0.173118 -0.5 1 -0.187381 -0.5625 1 -0.173118 -0.625 1 -0.132499 -0.6875 1 -0.0717077 -0.75 1 -1.38778e-17 -0.8125 1 0.0717077 -0.875 1 0.132499 -0.9375 1 0.173118 -1 1 0.187381 - - -0 0 0.156434 -0.0625 0 0.144527 -0.125 0 0.110616 -0.1875 0 0.0598649 -0.25 0 0 -0.3125 0 -0.0598649 -0.375 0 -0.110616 -0.4375 0 -0.144527 -0.5 0 -0.156434 -0.5625 0 -0.144527 -0.625 0 -0.110616 -0.6875 0 -0.0598649 -0.75 0 -4.16334e-17 -0.8125 0 0.0598649 -0.875 0 0.110616 -0.9375 0 0.144527 -1 0 0.156434 - -0 0.0625 0.144527 -0.0625 0.0625 0.133525 -0.125 0.0625 0.102196 -0.1875 0.0625 0.0553079 -0.25 0.0625 1.73472e-18 -0.3125 0.0625 -0.0553079 -0.375 0.0625 -0.102196 -0.4375 0.0625 -0.133525 -0.5 0.0625 -0.144527 -0.5625 0.0625 -0.133525 -0.625 0.0625 -0.102196 -0.6875 0.0625 -0.0553079 -0.75 0.0625 -3.98986e-17 -0.8125 0.0625 0.0553079 -0.875 0.0625 0.102196 -0.9375 0.0625 0.133525 -1 0.0625 0.144527 - -0 0.125 0.110616 -0.0625 0.125 0.102196 -0.125 0.125 0.0782172 -0.1875 0.125 0.0423309 -0.25 0.125 -3.46945e-18 -0.3125 0.125 -0.0423309 -0.375 0.125 -0.0782172 -0.4375 0.125 -0.102196 -0.5 0.125 -0.110616 -0.5625 0.125 -0.102196 -0.625 0.125 -0.0782172 -0.6875 0.125 -0.0423309 -0.75 0.125 -3.1225e-17 -0.8125 0.125 0.0423309 -0.875 0.125 0.0782172 -0.9375 0.125 0.102196 -1 0.125 0.110616 - -0 0.1875 0.0598649 -0.0625 0.1875 0.0553079 -0.125 0.1875 0.0423309 -0.1875 0.1875 0.0229093 -0.25 0.1875 -1.73472e-18 -0.3125 0.1875 -0.0229093 -0.375 0.1875 -0.0423309 -0.4375 0.1875 -0.0553079 -0.5 0.1875 -0.0598649 -0.5625 0.1875 -0.0553079 -0.625 0.1875 -0.0423309 -0.6875 0.1875 -0.0229093 -0.75 0.1875 -1.56125e-17 -0.8125 0.1875 0.0229093 -0.875 0.1875 0.0423309 -0.9375 0.1875 0.0553079 -1 0.1875 0.0598649 - -0 0.25 0 -0.0625 0.25 2.77556e-17 -0.125 0.25 1.38778e-17 -0.1875 0.25 3.46945e-18 -0.25 0.25 0 -0.3125 0.25 -3.46945e-18 -0.375 0.25 -1.38778e-17 -0.4375 0.25 -1.38778e-17 -0.5 0.25 -1.38778e-17 -0.5625 0.25 -1.38778e-17 -0.625 0.25 -1.38778e-17 -0.6875 0.25 -3.46945e-18 -0.75 0.25 0 -0.8125 0.25 3.46945e-18 -0.875 0.25 2.08167e-17 -0.9375 0.25 1.38778e-17 -1 0.25 0 - -0 0.3125 -0.0598649 -0.0625 0.3125 -0.0553079 -0.125 0.3125 -0.0423309 -0.1875 0.3125 -0.0229093 -0.25 0.3125 0 -0.3125 0.3125 0.0229093 -0.375 0.3125 0.0423309 -0.4375 0.3125 0.0553079 -0.5 0.3125 0.0598649 -0.5625 0.3125 0.0553079 -0.625 0.3125 0.0423309 -0.6875 0.3125 0.0229093 -0.75 0.3125 1.38778e-17 -0.8125 0.3125 -0.0229093 -0.875 0.3125 -0.0423309 -0.9375 0.3125 -0.0553079 -1 0.3125 -0.0598649 - -0 0.375 -0.110616 -0.0625 0.375 -0.102196 -0.125 0.375 -0.0782172 -0.1875 0.375 -0.0423309 -0.25 0.375 0 -0.3125 0.375 0.0423309 -0.375 0.375 0.0782172 -0.4375 0.375 0.102196 -0.5 0.375 0.110616 -0.5625 0.375 0.102196 -0.625 0.375 0.0782172 -0.6875 0.375 0.0423309 -0.75 0.375 2.77556e-17 -0.8125 0.375 -0.0423309 -0.875 0.375 -0.0782172 -0.9375 0.375 -0.102196 -1 0.375 -0.110616 - -0 0.4375 -0.144527 -0.0625 0.4375 -0.133525 -0.125 0.4375 -0.102196 -0.1875 0.4375 -0.0553079 -0.25 0.4375 -3.46945e-18 -0.3125 0.4375 0.0553079 -0.375 0.4375 0.102196 -0.4375 0.4375 0.133525 -0.5 0.4375 0.144527 -0.5625 0.4375 0.133525 -0.625 0.4375 0.102196 -0.6875 0.4375 0.0553079 -0.75 0.4375 3.81639e-17 -0.8125 0.4375 -0.0553079 -0.875 0.4375 -0.102196 -0.9375 0.4375 -0.133525 -1 0.4375 -0.144527 - -0 0.5 -0.156434 -0.0625 0.5 -0.144527 -0.125 0.5 -0.110616 -0.1875 0.5 -0.0598649 -0.25 0.5 0 -0.3125 0.5 0.0598649 -0.375 0.5 0.110616 -0.4375 0.5 0.144527 -0.5 0.5 0.156434 -0.5625 0.5 0.144527 -0.625 0.5 0.110616 -0.6875 0.5 0.0598649 -0.75 0.5 4.16334e-17 -0.8125 0.5 -0.0598649 -0.875 0.5 -0.110616 -0.9375 0.5 -0.144527 -1 0.5 -0.156434 - -0 0.5625 -0.144527 -0.0625 0.5625 -0.133525 -0.125 0.5625 -0.102196 -0.1875 0.5625 -0.0553079 -0.25 0.5625 -3.46945e-18 -0.3125 0.5625 0.0553079 -0.375 0.5625 0.102196 -0.4375 0.5625 0.133525 -0.5 0.5625 0.144527 -0.5625 0.5625 0.133525 -0.625 0.5625 0.102196 -0.6875 0.5625 0.0553079 -0.75 0.5625 3.81639e-17 -0.8125 0.5625 -0.0553079 -0.875 0.5625 -0.102196 -0.9375 0.5625 -0.133525 -1 0.5625 -0.144527 - -0 0.625 -0.110616 -0.0625 0.625 -0.102196 -0.125 0.625 -0.0782172 -0.1875 0.625 -0.0423309 -0.25 0.625 -1.54074e-33 -0.3125 0.625 0.0423309 -0.375 0.625 0.0782172 -0.4375 0.625 0.102196 -0.5 0.625 0.110616 -0.5625 0.625 0.102196 -0.625 0.625 0.0782172 -0.6875 0.625 0.0423309 -0.75 0.625 2.77556e-17 -0.8125 0.625 -0.0423309 -0.875 0.625 -0.0782172 -0.9375 0.625 -0.102196 -1 0.625 -0.110616 - -0 0.6875 -0.0598649 -0.0625 0.6875 -0.0553079 -0.125 0.6875 -0.0423309 -0.1875 0.6875 -0.0229093 -0.25 0.6875 4.33681e-19 -0.3125 0.6875 0.0229093 -0.375 0.6875 0.0423309 -0.4375 0.6875 0.0553079 -0.5 0.6875 0.0598649 -0.5625 0.6875 0.0553079 -0.625 0.6875 0.0423309 -0.6875 0.6875 0.0229093 -0.75 0.6875 1.43115e-17 -0.8125 0.6875 -0.0229093 -0.875 0.6875 -0.0423309 -0.9375 0.6875 -0.0553079 -1 0.6875 -0.0598649 - -0 0.75 -4.16334e-17 -0.0625 0.75 -1.38778e-17 -0.125 0.75 -2.08167e-17 -0.1875 0.75 -1.38778e-17 -0.25 0.75 -3.08149e-33 -0.3125 0.75 1.38778e-17 -0.375 0.75 2.08167e-17 -0.4375 0.75 2.77556e-17 -0.5 0.75 2.77556e-17 -0.5625 0.75 2.77556e-17 -0.625 0.75 2.08167e-17 -0.6875 0.75 1.38778e-17 -0.75 0.75 6.16298e-33 -0.8125 0.75 -1.38778e-17 -0.875 0.75 -1.38778e-17 -0.9375 0.75 -2.77556e-17 -1 0.75 -4.16334e-17 - -0 0.8125 0.0598649 -0.0625 0.8125 0.0553079 -0.125 0.8125 0.0423309 -0.1875 0.8125 0.0229093 -0.25 0.8125 -2.31112e-33 -0.3125 0.8125 -0.0229093 -0.375 0.8125 -0.0423309 -0.4375 0.8125 -0.0553079 -0.5 0.8125 -0.0598649 -0.5625 0.8125 -0.0553079 -0.625 0.8125 -0.0423309 -0.6875 0.8125 -0.0229093 -0.75 0.8125 -1.38778e-17 -0.8125 0.8125 0.0229093 -0.875 0.8125 0.0423309 -0.9375 0.8125 0.0553079 -1 0.8125 0.0598649 - -0 0.875 0.110616 -0.0625 0.875 0.102196 -0.125 0.875 0.0782172 -0.1875 0.875 0.0423309 -0.25 0.875 -1.54074e-33 -0.3125 0.875 -0.0423309 -0.375 0.875 -0.0782172 -0.4375 0.875 -0.102196 -0.5 0.875 -0.110616 -0.5625 0.875 -0.102196 -0.625 0.875 -0.0782172 -0.6875 0.875 -0.0423309 -0.75 0.875 -2.77556e-17 -0.8125 0.875 0.0423309 -0.875 0.875 0.0782172 -0.9375 0.875 0.102196 -1 0.875 0.110616 - -0 0.9375 0.144527 -0.0625 0.9375 0.133525 -0.125 0.9375 0.102196 -0.1875 0.9375 0.0553079 -0.25 0.9375 3.46945e-18 -0.3125 0.9375 -0.0553079 -0.375 0.9375 -0.102196 -0.4375 0.9375 -0.133525 -0.5 0.9375 -0.144527 -0.5625 0.9375 -0.133525 -0.625 0.9375 -0.102196 -0.6875 0.9375 -0.0553079 -0.75 0.9375 -3.81639e-17 -0.8125 0.9375 0.0553079 -0.875 0.9375 0.102196 -0.9375 0.9375 0.133525 -1 0.9375 0.144527 - -0 1 0.156434 -0.0625 1 0.144527 -0.125 1 0.110616 -0.1875 1 0.0598649 -0.25 1 0 -0.3125 1 -0.0598649 -0.375 1 -0.110616 -0.4375 1 -0.144527 -0.5 1 -0.156434 -0.5625 1 -0.144527 -0.625 1 -0.110616 -0.6875 1 -0.0598649 -0.75 1 -4.16334e-17 -0.8125 1 0.0598649 -0.875 1 0.110616 -0.9375 1 0.144527 -1 1 0.156434 - - -0 0 0.125333 -0.0625 0 0.115793 -0.125 0 0.088624 -0.1875 0 0.047963 -0.25 0 1.38778e-17 -0.3125 0 -0.047963 -0.375 0 -0.088624 -0.4375 0 -0.115793 -0.5 0 -0.125333 -0.5625 0 -0.115793 -0.625 0 -0.088624 -0.6875 0 -0.047963 -0.75 0 -2.77556e-17 -0.8125 0 0.047963 -0.875 0 0.088624 -0.9375 0 0.115793 -1 0 0.125333 - -0 0.0625 0.115793 -0.0625 0.0625 0.106979 -0.125 0.0625 0.0818779 -0.1875 0.0625 0.044312 -0.25 0.0625 6.07153e-18 -0.3125 0.0625 -0.044312 -0.375 0.0625 -0.0818779 -0.4375 0.0625 -0.106979 -0.5 0.0625 -0.115793 -0.5625 0.0625 -0.106979 -0.625 0.0625 -0.0818779 -0.6875 0.0625 -0.044312 -0.75 0.0625 -2.1684e-17 -0.8125 0.0625 0.044312 -0.875 0.0625 0.0818779 -0.9375 0.0625 0.106979 -1 0.0625 0.115793 - -0 0.125 0.088624 -0.0625 0.125 0.0818779 -0.125 0.125 0.0626666 -0.1875 0.125 0.0339149 -0.25 0.125 5.20417e-18 -0.3125 0.125 -0.0339149 -0.375 0.125 -0.0626666 -0.4375 0.125 -0.0818779 -0.5 0.125 -0.088624 -0.5625 0.125 -0.0818779 -0.625 0.125 -0.0626666 -0.6875 0.125 -0.0339149 -0.75 0.125 -1.56125e-17 -0.8125 0.125 0.0339149 -0.875 0.125 0.0626666 -0.9375 0.125 0.0818779 -1 0.125 0.088624 - -0 0.1875 0.047963 -0.0625 0.1875 0.044312 -0.125 0.1875 0.0339149 -0.1875 0.1875 0.0183546 -0.25 0.1875 2.38524e-18 -0.3125 0.1875 -0.0183546 -0.375 0.1875 -0.0339149 -0.4375 0.1875 -0.044312 -0.5 0.1875 -0.047963 -0.5625 0.1875 -0.044312 -0.625 0.1875 -0.0339149 -0.6875 0.1875 -0.0183546 -0.75 0.1875 -1.14925e-17 -0.8125 0.1875 0.0183546 -0.875 0.1875 0.0339149 -0.9375 0.1875 0.044312 -1 0.1875 0.047963 - -0 0.25 1.38778e-17 -0.0625 0.25 6.93889e-18 -0.125 0.25 0 -0.1875 0.25 6.93889e-18 -0.25 0.25 0 -0.3125 0.25 -6.93889e-18 -0.375 0.25 0 -0.4375 0.25 -6.93889e-18 -0.5 0.25 -1.38778e-17 -0.5625 0.25 -6.93889e-18 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 6.93889e-18 -0.875 0.25 0 -0.9375 0.25 2.08167e-17 -1 0.25 1.38778e-17 - -0 0.3125 -0.047963 -0.0625 0.3125 -0.044312 -0.125 0.3125 -0.0339149 -0.1875 0.3125 -0.0183546 -0.25 0.3125 -3.46945e-18 -0.3125 0.3125 0.0183546 -0.375 0.3125 0.0339149 -0.4375 0.3125 0.044312 -0.5 0.3125 0.047963 -0.5625 0.3125 0.044312 -0.625 0.3125 0.0339149 -0.6875 0.3125 0.0183546 -0.75 0.3125 1.04083e-17 -0.8125 0.3125 -0.0183546 -0.875 0.3125 -0.0339149 -0.9375 0.3125 -0.044312 -1 0.3125 -0.047963 - -0 0.375 -0.088624 -0.0625 0.375 -0.0818779 -0.125 0.375 -0.0626666 -0.1875 0.375 -0.0339149 -0.25 0.375 -6.93889e-18 -0.3125 0.375 0.0339149 -0.375 0.375 0.0626666 -0.4375 0.375 0.0818779 -0.5 0.375 0.088624 -0.5625 0.375 0.0818779 -0.625 0.375 0.0626666 -0.6875 0.375 0.0339149 -0.75 0.375 1.38778e-17 -0.8125 0.375 -0.0339149 -0.875 0.375 -0.0626666 -0.9375 0.375 -0.0818779 -1 0.375 -0.088624 - -0 0.4375 -0.115793 -0.0625 0.4375 -0.106979 -0.125 0.4375 -0.0818779 -0.1875 0.4375 -0.044312 -0.25 0.4375 -6.93889e-18 -0.3125 0.4375 0.044312 -0.375 0.4375 0.0818779 -0.4375 0.4375 0.106979 -0.5 0.4375 0.115793 -0.5625 0.4375 0.106979 -0.625 0.4375 0.0818779 -0.6875 0.4375 0.044312 -0.75 0.4375 2.08167e-17 -0.8125 0.4375 -0.044312 -0.875 0.4375 -0.0818779 -0.9375 0.4375 -0.106979 -1 0.4375 -0.115793 - -0 0.5 -0.125333 -0.0625 0.5 -0.115793 -0.125 0.5 -0.088624 -0.1875 0.5 -0.047963 -0.25 0.5 -1.38778e-17 -0.3125 0.5 0.047963 -0.375 0.5 0.088624 -0.4375 0.5 0.115793 -0.5 0.5 0.125333 -0.5625 0.5 0.115793 -0.625 0.5 0.088624 -0.6875 0.5 0.047963 -0.75 0.5 2.77556e-17 -0.8125 0.5 -0.047963 -0.875 0.5 -0.088624 -0.9375 0.5 -0.115793 -1 0.5 -0.125333 - -0 0.5625 -0.115793 -0.0625 0.5625 -0.106979 -0.125 0.5625 -0.0818779 -0.1875 0.5625 -0.044312 -0.25 0.5625 -7.80626e-18 -0.3125 0.5625 0.044312 -0.375 0.5625 0.0818779 -0.4375 0.5625 0.106979 -0.5 0.5625 0.115793 -0.5625 0.5625 0.106979 -0.625 0.5625 0.0818779 -0.6875 0.5625 0.044312 -0.75 0.5625 1.99493e-17 -0.8125 0.5625 -0.044312 -0.875 0.5625 -0.0818779 -0.9375 0.5625 -0.106979 -1 0.5625 -0.115793 - -0 0.625 -0.088624 -0.0625 0.625 -0.0818779 -0.125 0.625 -0.0626666 -0.1875 0.625 -0.0339149 -0.25 0.625 -8.67362e-18 -0.3125 0.625 0.0339149 -0.375 0.625 0.0626666 -0.4375 0.625 0.0818779 -0.5 0.625 0.088624 -0.5625 0.625 0.0818779 -0.625 0.625 0.0626666 -0.6875 0.625 0.0339149 -0.75 0.625 1.21431e-17 -0.8125 0.625 -0.0339149 -0.875 0.625 -0.0626666 -0.9375 0.625 -0.0818779 -1 0.625 -0.088624 - -0 0.6875 -0.047963 -0.0625 0.6875 -0.044312 -0.125 0.6875 -0.0339149 -0.1875 0.6875 -0.0183546 -0.25 0.6875 -4.55365e-18 -0.3125 0.6875 0.0183546 -0.375 0.6875 0.0339149 -0.4375 0.6875 0.044312 -0.5 0.6875 0.047963 -0.5625 0.6875 0.044312 -0.625 0.6875 0.0339149 -0.6875 0.6875 0.0183546 -0.75 0.6875 9.32414e-18 -0.8125 0.6875 -0.0183546 -0.875 0.6875 -0.0339149 -0.9375 0.6875 -0.044312 -1 0.6875 -0.047963 - -0 0.75 -2.77556e-17 -0.0625 0.75 -3.46945e-17 -0.125 0.75 -2.77556e-17 -0.1875 0.75 -6.93889e-18 -0.25 0.75 0 -0.3125 0.75 6.93889e-18 -0.375 0.75 2.77556e-17 -0.4375 0.75 3.46945e-17 -0.5 0.75 2.77556e-17 -0.5625 0.75 3.46945e-17 -0.625 0.75 2.77556e-17 -0.6875 0.75 1.38778e-17 -0.75 0.75 6.16298e-33 -0.8125 0.75 -6.93889e-18 -0.875 0.75 -2.77556e-17 -0.9375 0.75 -2.08167e-17 -1 0.75 -2.77556e-17 - -0 0.8125 0.047963 -0.0625 0.8125 0.044312 -0.125 0.8125 0.0339149 -0.1875 0.8125 0.0183546 -0.25 0.8125 3.46945e-18 -0.3125 0.8125 -0.0183546 -0.375 0.8125 -0.0339149 -0.4375 0.8125 -0.044312 -0.5 0.8125 -0.047963 -0.5625 0.8125 -0.044312 -0.625 0.8125 -0.0339149 -0.6875 0.8125 -0.0183546 -0.75 0.8125 -1.04083e-17 -0.8125 0.8125 0.0183546 -0.875 0.8125 0.0339149 -0.9375 0.8125 0.044312 -1 0.8125 0.047963 - -0 0.875 0.088624 -0.0625 0.875 0.0818779 -0.125 0.875 0.0626666 -0.1875 0.875 0.0339149 -0.25 0.875 6.93889e-18 -0.3125 0.875 -0.0339149 -0.375 0.875 -0.0626666 -0.4375 0.875 -0.0818779 -0.5 0.875 -0.088624 -0.5625 0.875 -0.0818779 -0.625 0.875 -0.0626666 -0.6875 0.875 -0.0339149 -0.75 0.875 -1.38778e-17 -0.8125 0.875 0.0339149 -0.875 0.875 0.0626666 -0.9375 0.875 0.0818779 -1 0.875 0.088624 - -0 0.9375 0.115793 -0.0625 0.9375 0.106979 -0.125 0.9375 0.0818779 -0.1875 0.9375 0.044312 -0.25 0.9375 6.93889e-18 -0.3125 0.9375 -0.044312 -0.375 0.9375 -0.0818779 -0.4375 0.9375 -0.106979 -0.5 0.9375 -0.115793 -0.5625 0.9375 -0.106979 -0.625 0.9375 -0.0818779 -0.6875 0.9375 -0.044312 -0.75 0.9375 -2.08167e-17 -0.8125 0.9375 0.044312 -0.875 0.9375 0.0818779 -0.9375 0.9375 0.106979 -1 0.9375 0.115793 - -0 1 0.125333 -0.0625 1 0.115793 -0.125 1 0.088624 -0.1875 1 0.047963 -0.25 1 1.38778e-17 -0.3125 1 -0.047963 -0.375 1 -0.088624 -0.4375 1 -0.115793 -0.5 1 -0.125333 -0.5625 1 -0.115793 -0.625 1 -0.088624 -0.6875 1 -0.047963 -0.75 1 -2.77556e-17 -0.8125 1 0.047963 -0.875 1 0.088624 -0.9375 1 0.115793 -1 1 0.125333 - - -0 0 0.0941083 -0.0625 0 0.0869447 -0.125 0 0.0665446 -0.1875 0 0.0360137 -0.25 0 1.38778e-17 -0.3125 0 -0.0360137 -0.375 0 -0.0665446 -0.4375 0 -0.0869447 -0.5 0 -0.0941083 -0.5625 0 -0.0869447 -0.625 0 -0.0665446 -0.6875 0 -0.0360137 -0.75 0 -6.93889e-18 -0.8125 0 0.0360137 -0.875 0 0.0665446 -0.9375 0 0.0869447 -1 0 0.0941083 - -0 0.0625 0.0869447 -0.0625 0.0625 0.0803265 -0.125 0.0625 0.0614792 -0.1875 0.0625 0.0332723 -0.25 0.0625 1.30104e-17 -0.3125 0.0625 -0.0332723 -0.375 0.0625 -0.0614792 -0.4375 0.0625 -0.0803265 -0.5 0.0625 -0.0869447 -0.5625 0.0625 -0.0803265 -0.625 0.0625 -0.0614792 -0.6875 0.0625 -0.0332723 -0.75 0.0625 -7.80626e-18 -0.8125 0.0625 0.0332723 -0.875 0.0625 0.0614792 -0.9375 0.0625 0.0803265 -1 0.0625 0.0869447 - -0 0.125 0.0665446 -0.0625 0.125 0.0614792 -0.125 0.125 0.0470542 -0.1875 0.125 0.0254655 -0.25 0.125 1.21431e-17 -0.3125 0.125 -0.0254655 -0.375 0.125 -0.0470542 -0.4375 0.125 -0.0614792 -0.5 0.125 -0.0665446 -0.5625 0.125 -0.0614792 -0.625 0.125 -0.0470542 -0.6875 0.125 -0.0254655 -0.75 0.125 -8.67362e-18 -0.8125 0.125 0.0254655 -0.875 0.125 0.0470542 -0.9375 0.125 0.0614792 -1 0.125 0.0665446 - -0 0.1875 0.0360137 -0.0625 0.1875 0.0332723 -0.125 0.1875 0.0254655 -0.1875 0.1875 0.0137818 -0.25 0.1875 6.28837e-18 -0.3125 0.1875 -0.0137818 -0.375 0.1875 -0.0254655 -0.4375 0.1875 -0.0332723 -0.5 0.1875 -0.0360137 -0.5625 0.1875 -0.0332723 -0.625 0.1875 -0.0254655 -0.6875 0.1875 -0.0137818 -0.75 0.1875 -4.11997e-18 -0.8125 0.1875 0.0137818 -0.875 0.1875 0.0254655 -0.9375 0.1875 0.0332723 -1 0.1875 0.0360137 - -0 0.25 1.38778e-17 -0.0625 0.25 6.93889e-18 -0.125 0.25 6.93889e-18 -0.1875 0.25 3.46945e-18 -0.25 0.25 0 -0.3125 0.25 -3.46945e-18 -0.375 0.25 -6.93889e-18 -0.4375 0.25 -1.38778e-17 -0.5 0.25 -1.38778e-17 -0.5625 0.25 -6.93889e-18 -0.625 0.25 -6.93889e-18 -0.6875 0.25 -3.46945e-18 -0.75 0.25 -1.54074e-33 -0.8125 0.25 3.46945e-18 -0.875 0.25 1.38778e-17 -0.9375 0.25 1.38778e-17 -1 0.25 1.38778e-17 - -0 0.3125 -0.0360137 -0.0625 0.3125 -0.0332723 -0.125 0.3125 -0.0254655 -0.1875 0.3125 -0.0137818 -0.25 0.3125 -5.20417e-18 -0.3125 0.3125 0.0137818 -0.375 0.3125 0.0254655 -0.4375 0.3125 0.0332723 -0.5 0.3125 0.0360137 -0.5625 0.3125 0.0332723 -0.625 0.3125 0.0254655 -0.6875 0.3125 0.0137818 -0.75 0.3125 5.20417e-18 -0.8125 0.3125 -0.0137818 -0.875 0.3125 -0.0254655 -0.9375 0.3125 -0.0332723 -1 0.3125 -0.0360137 - -0 0.375 -0.0665446 -0.0625 0.375 -0.0614792 -0.125 0.375 -0.0470542 -0.1875 0.375 -0.0254655 -0.25 0.375 -1.04083e-17 -0.3125 0.375 0.0254655 -0.375 0.375 0.0470542 -0.4375 0.375 0.0614792 -0.5 0.375 0.0665446 -0.5625 0.375 0.0614792 -0.625 0.375 0.0470542 -0.6875 0.375 0.0254655 -0.75 0.375 1.04083e-17 -0.8125 0.375 -0.0254655 -0.875 0.375 -0.0470542 -0.9375 0.375 -0.0614792 -1 0.375 -0.0665446 - -0 0.4375 -0.0869447 -0.0625 0.4375 -0.0803265 -0.125 0.4375 -0.0614792 -0.1875 0.4375 -0.0332723 -0.25 0.4375 -1.21431e-17 -0.3125 0.4375 0.0332723 -0.375 0.4375 0.0614792 -0.4375 0.4375 0.0803265 -0.5 0.4375 0.0869447 -0.5625 0.4375 0.0803265 -0.625 0.4375 0.0614792 -0.6875 0.4375 0.0332723 -0.75 0.4375 8.67362e-18 -0.8125 0.4375 -0.0332723 -0.875 0.4375 -0.0614792 -0.9375 0.4375 -0.0803265 -1 0.4375 -0.0869447 - -0 0.5 -0.0941083 -0.0625 0.5 -0.0869447 -0.125 0.5 -0.0665446 -0.1875 0.5 -0.0360137 -0.25 0.5 -1.38778e-17 -0.3125 0.5 0.0360137 -0.375 0.5 0.0665446 -0.4375 0.5 0.0869447 -0.5 0.5 0.0941083 -0.5625 0.5 0.0869447 -0.625 0.5 0.0665446 -0.6875 0.5 0.0360137 -0.75 0.5 6.93889e-18 -0.8125 0.5 -0.0360137 -0.875 0.5 -0.0665446 -0.9375 0.5 -0.0869447 -1 0.5 -0.0941083 - -0 0.5625 -0.0869447 -0.0625 0.5625 -0.0803265 -0.125 0.5625 -0.0614792 -0.1875 0.5625 -0.0332723 -0.25 0.5625 -1.21431e-17 -0.3125 0.5625 0.0332723 -0.375 0.5625 0.0614792 -0.4375 0.5625 0.0803265 -0.5 0.5625 0.0869447 -0.5625 0.5625 0.0803265 -0.625 0.5625 0.0614792 -0.6875 0.5625 0.0332723 -0.75 0.5625 8.67362e-18 -0.8125 0.5625 -0.0332723 -0.875 0.5625 -0.0614792 -0.9375 0.5625 -0.0803265 -1 0.5625 -0.0869447 - -0 0.625 -0.0665446 -0.0625 0.625 -0.0614792 -0.125 0.625 -0.0470542 -0.1875 0.625 -0.0254655 -0.25 0.625 -1.04083e-17 -0.3125 0.625 0.0254655 -0.375 0.625 0.0470542 -0.4375 0.625 0.0614792 -0.5 0.625 0.0665446 -0.5625 0.625 0.0614792 -0.625 0.625 0.0470542 -0.6875 0.625 0.0254655 -0.75 0.625 1.04083e-17 -0.8125 0.625 -0.0254655 -0.875 0.625 -0.0470542 -0.9375 0.625 -0.0614792 -1 0.625 -0.0665446 - -0 0.6875 -0.0360137 -0.0625 0.6875 -0.0332723 -0.125 0.6875 -0.0254655 -0.1875 0.6875 -0.0137818 -0.25 0.6875 -5.20417e-18 -0.3125 0.6875 0.0137818 -0.375 0.6875 0.0254655 -0.4375 0.6875 0.0332723 -0.5 0.6875 0.0360137 -0.5625 0.6875 0.0332723 -0.625 0.6875 0.0254655 -0.6875 0.6875 0.0137818 -0.75 0.6875 5.20417e-18 -0.8125 0.6875 -0.0137818 -0.875 0.6875 -0.0254655 -0.9375 0.6875 -0.0332723 -1 0.6875 -0.0360137 - -0 0.75 -6.93889e-18 -0.0625 0.75 -1.38778e-17 -0.125 0.75 -1.38778e-17 -0.1875 0.75 -6.93889e-18 -0.25 0.75 -1.54074e-33 -0.3125 0.75 6.93889e-18 -0.375 0.75 1.38778e-17 -0.4375 0.75 6.93889e-18 -0.5 0.75 6.93889e-18 -0.5625 0.75 1.38778e-17 -0.625 0.75 1.38778e-17 -0.6875 0.75 6.93889e-18 -0.75 0.75 3.08149e-33 -0.8125 0.75 -6.93889e-18 -0.875 0.75 0 -0.9375 0.75 -6.93889e-18 -1 0.75 -6.93889e-18 - -0 0.8125 0.0360137 -0.0625 0.8125 0.0332723 -0.125 0.8125 0.0254655 -0.1875 0.8125 0.0137818 -0.25 0.8125 5.20417e-18 -0.3125 0.8125 -0.0137818 -0.375 0.8125 -0.0254655 -0.4375 0.8125 -0.0332723 -0.5 0.8125 -0.0360137 -0.5625 0.8125 -0.0332723 -0.625 0.8125 -0.0254655 -0.6875 0.8125 -0.0137818 -0.75 0.8125 -5.20417e-18 -0.8125 0.8125 0.0137818 -0.875 0.8125 0.0254655 -0.9375 0.8125 0.0332723 -1 0.8125 0.0360137 - -0 0.875 0.0665446 -0.0625 0.875 0.0614792 -0.125 0.875 0.0470542 -0.1875 0.875 0.0254655 -0.25 0.875 1.04083e-17 -0.3125 0.875 -0.0254655 -0.375 0.875 -0.0470542 -0.4375 0.875 -0.0614792 -0.5 0.875 -0.0665446 -0.5625 0.875 -0.0614792 -0.625 0.875 -0.0470542 -0.6875 0.875 -0.0254655 -0.75 0.875 -1.04083e-17 -0.8125 0.875 0.0254655 -0.875 0.875 0.0470542 -0.9375 0.875 0.0614792 -1 0.875 0.0665446 - -0 0.9375 0.0869447 -0.0625 0.9375 0.0803265 -0.125 0.9375 0.0614792 -0.1875 0.9375 0.0332723 -0.25 0.9375 1.21431e-17 -0.3125 0.9375 -0.0332723 -0.375 0.9375 -0.0614792 -0.4375 0.9375 -0.0803265 -0.5 0.9375 -0.0869447 -0.5625 0.9375 -0.0803265 -0.625 0.9375 -0.0614792 -0.6875 0.9375 -0.0332723 -0.75 0.9375 -8.67362e-18 -0.8125 0.9375 0.0332723 -0.875 0.9375 0.0614792 -0.9375 0.9375 0.0803265 -1 0.9375 0.0869447 - -0 1 0.0941083 -0.0625 1 0.0869447 -0.125 1 0.0665446 -0.1875 1 0.0360137 -0.25 1 1.38778e-17 -0.3125 1 -0.0360137 -0.375 1 -0.0665446 -0.4375 1 -0.0869447 -0.5 1 -0.0941083 -0.5625 1 -0.0869447 -0.625 1 -0.0665446 -0.6875 1 -0.0360137 -0.75 1 -6.93889e-18 -0.8125 1 0.0360137 -0.875 1 0.0665446 -0.9375 1 0.0869447 -1 1 0.0941083 - - -0 0 0.0627905 -0.0625 0 0.0580109 -0.125 0 0.0443996 -0.1875 0 0.0240289 -0.25 0 6.93889e-18 -0.3125 0 -0.0240289 -0.375 0 -0.0443996 -0.4375 0 -0.0580109 -0.5 0 -0.0627905 -0.5625 0 -0.0580109 -0.625 0 -0.0443996 -0.6875 0 -0.0240289 -0.75 0 -1.38778e-17 -0.8125 0 0.0240289 -0.875 0 0.0443996 -0.9375 0 0.0580109 -1 0 0.0627905 - -0 0.0625 0.0580109 -0.0625 0.0625 0.0535951 -0.125 0.0625 0.0410199 -0.1875 0.0625 0.0221998 -0.25 0.0625 3.03577e-18 -0.3125 0.0625 -0.0221998 -0.375 0.0625 -0.0410199 -0.4375 0.0625 -0.0535951 -0.5 0.0625 -0.0580109 -0.5625 0.0625 -0.0535951 -0.625 0.0625 -0.0410199 -0.6875 0.0625 -0.0221998 -0.75 0.0625 -1.0842e-17 -0.8125 0.0625 0.0221998 -0.875 0.0625 0.0410199 -0.9375 0.0625 0.0535951 -1 0.0625 0.0580109 - -0 0.125 0.0443996 -0.0625 0.125 0.0410199 -0.125 0.125 0.0313953 -0.1875 0.125 0.016991 -0.25 0.125 2.60209e-18 -0.3125 0.125 -0.016991 -0.375 0.125 -0.0313953 -0.4375 0.125 -0.0410199 -0.5 0.125 -0.0443996 -0.5625 0.125 -0.0410199 -0.625 0.125 -0.0313953 -0.6875 0.125 -0.016991 -0.75 0.125 -7.80626e-18 -0.8125 0.125 0.016991 -0.875 0.125 0.0313953 -0.9375 0.125 0.0410199 -1 0.125 0.0443996 - -0 0.1875 0.0240289 -0.0625 0.1875 0.0221998 -0.125 0.1875 0.016991 -0.1875 0.1875 0.00919546 -0.25 0.1875 1.19262e-18 -0.3125 0.1875 -0.00919546 -0.375 0.1875 -0.016991 -0.4375 0.1875 -0.0221998 -0.5 0.1875 -0.0240289 -0.5625 0.1875 -0.0221998 -0.625 0.1875 -0.016991 -0.6875 0.1875 -0.00919546 -0.75 0.1875 -5.74627e-18 -0.8125 0.1875 0.00919546 -0.875 0.1875 0.016991 -0.9375 0.1875 0.0221998 -1 0.1875 0.0240289 - -0 0.25 6.93889e-18 -0.0625 0.25 1.04083e-17 -0.125 0.25 3.46945e-18 -0.1875 0.25 3.46945e-18 -0.25 0.25 0 -0.3125 0.25 -1.73472e-18 -0.375 0.25 -6.93889e-18 -0.4375 0.25 -1.04083e-17 -0.5 0.25 -6.93889e-18 -0.5625 0.25 -3.46945e-18 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 6.93889e-18 -0.9375 0.25 3.46945e-18 -1 0.25 6.93889e-18 - -0 0.3125 -0.0240289 -0.0625 0.3125 -0.0221998 -0.125 0.3125 -0.016991 -0.1875 0.3125 -0.00919546 -0.25 0.3125 -1.73472e-18 -0.3125 0.3125 0.00919546 -0.375 0.3125 0.016991 -0.4375 0.3125 0.0221998 -0.5 0.3125 0.0240289 -0.5625 0.3125 0.0221998 -0.625 0.3125 0.016991 -0.6875 0.3125 0.00919546 -0.75 0.3125 5.20417e-18 -0.8125 0.3125 -0.00919546 -0.875 0.3125 -0.016991 -0.9375 0.3125 -0.0221998 -1 0.3125 -0.0240289 - -0 0.375 -0.0443996 -0.0625 0.375 -0.0410199 -0.125 0.375 -0.0313953 -0.1875 0.375 -0.016991 -0.25 0.375 -3.46945e-18 -0.3125 0.375 0.016991 -0.375 0.375 0.0313953 -0.4375 0.375 0.0410199 -0.5 0.375 0.0443996 -0.5625 0.375 0.0410199 -0.625 0.375 0.0313953 -0.6875 0.375 0.016991 -0.75 0.375 6.93889e-18 -0.8125 0.375 -0.016991 -0.875 0.375 -0.0313953 -0.9375 0.375 -0.0410199 -1 0.375 -0.0443996 - -0 0.4375 -0.0580109 -0.0625 0.4375 -0.0535951 -0.125 0.4375 -0.0410199 -0.1875 0.4375 -0.0221998 -0.25 0.4375 -3.46945e-18 -0.3125 0.4375 0.0221998 -0.375 0.4375 0.0410199 -0.4375 0.4375 0.0535951 -0.5 0.4375 0.0580109 -0.5625 0.4375 0.0535951 -0.625 0.4375 0.0410199 -0.6875 0.4375 0.0221998 -0.75 0.4375 1.04083e-17 -0.8125 0.4375 -0.0221998 -0.875 0.4375 -0.0410199 -0.9375 0.4375 -0.0535951 -1 0.4375 -0.0580109 - -0 0.5 -0.0627905 -0.0625 0.5 -0.0580109 -0.125 0.5 -0.0443996 -0.1875 0.5 -0.0240289 -0.25 0.5 -6.93889e-18 -0.3125 0.5 0.0240289 -0.375 0.5 0.0443996 -0.4375 0.5 0.0580109 -0.5 0.5 0.0627905 -0.5625 0.5 0.0580109 -0.625 0.5 0.0443996 -0.6875 0.5 0.0240289 -0.75 0.5 1.38778e-17 -0.8125 0.5 -0.0240289 -0.875 0.5 -0.0443996 -0.9375 0.5 -0.0580109 -1 0.5 -0.0627905 - -0 0.5625 -0.0580109 -0.0625 0.5625 -0.0535951 -0.125 0.5625 -0.0410199 -0.1875 0.5625 -0.0221998 -0.25 0.5625 -3.90313e-18 -0.3125 0.5625 0.0221998 -0.375 0.5625 0.0410199 -0.4375 0.5625 0.0535951 -0.5 0.5625 0.0580109 -0.5625 0.5625 0.0535951 -0.625 0.5625 0.0410199 -0.6875 0.5625 0.0221998 -0.75 0.5625 9.97466e-18 -0.8125 0.5625 -0.0221998 -0.875 0.5625 -0.0410199 -0.9375 0.5625 -0.0535951 -1 0.5625 -0.0580109 - -0 0.625 -0.0443996 -0.0625 0.625 -0.0410199 -0.125 0.625 -0.0313953 -0.1875 0.625 -0.016991 -0.25 0.625 -4.33681e-18 -0.3125 0.625 0.016991 -0.375 0.625 0.0313953 -0.4375 0.625 0.0410199 -0.5 0.625 0.0443996 -0.5625 0.625 0.0410199 -0.625 0.625 0.0313953 -0.6875 0.625 0.016991 -0.75 0.625 6.07153e-18 -0.8125 0.625 -0.016991 -0.875 0.625 -0.0313953 -0.9375 0.625 -0.0410199 -1 0.625 -0.0443996 - -0 0.6875 -0.0240289 -0.0625 0.6875 -0.0221998 -0.125 0.6875 -0.016991 -0.1875 0.6875 -0.00919546 -0.25 0.6875 -2.27682e-18 -0.3125 0.6875 0.00919546 -0.375 0.6875 0.016991 -0.4375 0.6875 0.0221998 -0.5 0.6875 0.0240289 -0.5625 0.6875 0.0221998 -0.625 0.6875 0.016991 -0.6875 0.6875 0.00919546 -0.75 0.6875 4.66207e-18 -0.8125 0.6875 -0.00919546 -0.875 0.6875 -0.016991 -0.9375 0.6875 -0.0221998 -1 0.6875 -0.0240289 - -0 0.75 -1.38778e-17 -0.0625 0.75 -1.04083e-17 -0.125 0.75 -1.04083e-17 -0.1875 0.75 -3.46945e-18 -0.25 0.75 0 -0.3125 0.75 5.20417e-18 -0.375 0.75 6.93889e-18 -0.4375 0.75 1.04083e-17 -0.5 0.75 1.38778e-17 -0.5625 0.75 1.73472e-17 -0.625 0.75 1.38778e-17 -0.6875 0.75 6.93889e-18 -0.75 0.75 3.08149e-33 -0.8125 0.75 -6.93889e-18 -0.875 0.75 -6.93889e-18 -0.9375 0.75 -1.73472e-17 -1 0.75 -1.38778e-17 - -0 0.8125 0.0240289 -0.0625 0.8125 0.0221998 -0.125 0.8125 0.016991 -0.1875 0.8125 0.00919546 -0.25 0.8125 1.73472e-18 -0.3125 0.8125 -0.00919546 -0.375 0.8125 -0.016991 -0.4375 0.8125 -0.0221998 -0.5 0.8125 -0.0240289 -0.5625 0.8125 -0.0221998 -0.625 0.8125 -0.016991 -0.6875 0.8125 -0.00919546 -0.75 0.8125 -5.20417e-18 -0.8125 0.8125 0.00919546 -0.875 0.8125 0.016991 -0.9375 0.8125 0.0221998 -1 0.8125 0.0240289 - -0 0.875 0.0443996 -0.0625 0.875 0.0410199 -0.125 0.875 0.0313953 -0.1875 0.875 0.016991 -0.25 0.875 3.46945e-18 -0.3125 0.875 -0.016991 -0.375 0.875 -0.0313953 -0.4375 0.875 -0.0410199 -0.5 0.875 -0.0443996 -0.5625 0.875 -0.0410199 -0.625 0.875 -0.0313953 -0.6875 0.875 -0.016991 -0.75 0.875 -6.93889e-18 -0.8125 0.875 0.016991 -0.875 0.875 0.0313953 -0.9375 0.875 0.0410199 -1 0.875 0.0443996 - -0 0.9375 0.0580109 -0.0625 0.9375 0.0535951 -0.125 0.9375 0.0410199 -0.1875 0.9375 0.0221998 -0.25 0.9375 3.46945e-18 -0.3125 0.9375 -0.0221998 -0.375 0.9375 -0.0410199 -0.4375 0.9375 -0.0535951 -0.5 0.9375 -0.0580109 -0.5625 0.9375 -0.0535951 -0.625 0.9375 -0.0410199 -0.6875 0.9375 -0.0221998 -0.75 0.9375 -1.04083e-17 -0.8125 0.9375 0.0221998 -0.875 0.9375 0.0410199 -0.9375 0.9375 0.0535951 -1 0.9375 0.0580109 - -0 1 0.0627905 -0.0625 1 0.0580109 -0.125 1 0.0443996 -0.1875 1 0.0240289 -0.25 1 6.93889e-18 -0.3125 1 -0.0240289 -0.375 1 -0.0443996 -0.4375 1 -0.0580109 -0.5 1 -0.0627905 -0.5625 1 -0.0580109 -0.625 1 -0.0443996 -0.6875 1 -0.0240289 -0.75 1 -1.38778e-17 -0.8125 1 0.0240289 -0.875 1 0.0443996 -0.9375 1 0.0580109 -1 1 0.0627905 - - -0 0 0.0314108 -0.0625 0 0.0290198 -0.125 0 0.0222108 -0.1875 0 0.0120204 -0.25 0 0 -0.3125 0 -0.0120204 -0.375 0 -0.0222108 -0.4375 0 -0.0290198 -0.5 0 -0.0314108 -0.5625 0 -0.0290198 -0.625 0 -0.0222108 -0.6875 0 -0.0120204 -0.75 0 -1.04083e-17 -0.8125 0 0.0120204 -0.875 0 0.0222108 -0.9375 0 0.0290198 -1 0 0.0314108 - -0 0.0625 0.0290198 -0.0625 0.0625 0.0268108 -0.125 0.0625 0.0205201 -0.1875 0.0625 0.0111054 -0.25 0.0625 -1.0842e-18 -0.3125 0.0625 -0.0111054 -0.375 0.0625 -0.0205201 -0.4375 0.0625 -0.0268108 -0.5 0.0625 -0.0290198 -0.5625 0.0625 -0.0268108 -0.625 0.0625 -0.0205201 -0.6875 0.0625 -0.0111054 -0.75 0.0625 -8.0231e-18 -0.8125 0.0625 0.0111054 -0.875 0.0625 0.0205201 -0.9375 0.0625 0.0268108 -1 0.0625 0.0290198 - -0 0.125 0.0222108 -0.0625 0.125 0.0205201 -0.125 0.125 0.0157054 -0.1875 0.125 0.00849969 -0.25 0.125 -4.33681e-19 -0.3125 0.125 -0.00849969 -0.375 0.125 -0.0157054 -0.4375 0.125 -0.0205201 -0.5 0.125 -0.0222108 -0.5625 0.125 -0.0205201 -0.625 0.125 -0.0157054 -0.6875 0.125 -0.00849969 -0.75 0.125 -5.63785e-18 -0.8125 0.125 0.00849969 -0.875 0.125 0.0157054 -0.9375 0.125 0.0205201 -1 0.125 0.0222108 - -0 0.1875 0.0120204 -0.0625 0.1875 0.0111054 -0.125 0.1875 0.00849969 -0.1875 0.1875 0.0046 -0.25 0.1875 -2.71051e-19 -0.3125 0.1875 -0.0046 -0.375 0.1875 -0.00849969 -0.4375 0.1875 -0.0111054 -0.5 0.1875 -0.0120204 -0.5625 0.1875 -0.0111054 -0.625 0.1875 -0.00849969 -0.6875 0.1875 -0.0046 -0.75 0.1875 -3.7405e-18 -0.8125 0.1875 0.0046 -0.875 0.1875 0.00849969 -0.9375 0.1875 0.0111054 -1 0.1875 0.0120204 - -0 0.25 0 -0.0625 0.25 5.20417e-18 -0.125 0.25 3.46945e-18 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 -1.73472e-18 -0.375 0.25 -3.46945e-18 -0.4375 0.25 -5.20417e-18 -0.5 0.25 -3.46945e-18 -0.5625 0.25 -5.20417e-18 -0.625 0.25 0 -0.6875 0.25 -1.73472e-18 -0.75 0.25 0 -0.8125 0.25 8.67362e-19 -0.875 0.25 1.73472e-18 -0.9375 0.25 1.73472e-18 -1 0.25 0 - -0 0.3125 -0.0120204 -0.0625 0.3125 -0.0111054 -0.125 0.3125 -0.00849969 -0.1875 0.3125 -0.0046 -0.25 0.3125 0 -0.3125 0.3125 0.0046 -0.375 0.3125 0.00849969 -0.4375 0.3125 0.0111054 -0.5 0.3125 0.0120204 -0.5625 0.3125 0.0111054 -0.625 0.3125 0.00849969 -0.6875 0.3125 0.0046 -0.75 0.3125 3.46945e-18 -0.8125 0.3125 -0.0046 -0.875 0.3125 -0.00849969 -0.9375 0.3125 -0.0111054 -1 0.3125 -0.0120204 - -0 0.375 -0.0222108 -0.0625 0.375 -0.0205201 -0.125 0.375 -0.0157054 -0.1875 0.375 -0.00849969 -0.25 0.375 0 -0.3125 0.375 0.00849969 -0.375 0.375 0.0157054 -0.4375 0.375 0.0205201 -0.5 0.375 0.0222108 -0.5625 0.375 0.0205201 -0.625 0.375 0.0157054 -0.6875 0.375 0.00849969 -0.75 0.375 5.20417e-18 -0.8125 0.375 -0.00849969 -0.875 0.375 -0.0157054 -0.9375 0.375 -0.0205201 -1 0.375 -0.0222108 - -0 0.4375 -0.0290198 -0.0625 0.4375 -0.0268108 -0.125 0.4375 -0.0205201 -0.1875 0.4375 -0.0111054 -0.25 0.4375 8.67362e-19 -0.3125 0.4375 0.0111054 -0.375 0.4375 0.0205201 -0.4375 0.4375 0.0268108 -0.5 0.4375 0.0290198 -0.5625 0.4375 0.0268108 -0.625 0.4375 0.0205201 -0.6875 0.4375 0.0111054 -0.75 0.4375 7.80626e-18 -0.8125 0.4375 -0.0111054 -0.875 0.4375 -0.0205201 -0.9375 0.4375 -0.0268108 -1 0.4375 -0.0290198 - -0 0.5 -0.0314108 -0.0625 0.5 -0.0290198 -0.125 0.5 -0.0222108 -0.1875 0.5 -0.0120204 -0.25 0.5 0 -0.3125 0.5 0.0120204 -0.375 0.5 0.0222108 -0.4375 0.5 0.0290198 -0.5 0.5 0.0314108 -0.5625 0.5 0.0290198 -0.625 0.5 0.0222108 -0.6875 0.5 0.0120204 -0.75 0.5 1.04083e-17 -0.8125 0.5 -0.0120204 -0.875 0.5 -0.0222108 -0.9375 0.5 -0.0290198 -1 0.5 -0.0314108 - -0 0.5625 -0.0290198 -0.0625 0.5625 -0.0268108 -0.125 0.5625 -0.0205201 -0.1875 0.5625 -0.0111054 -0.25 0.5625 6.50521e-19 -0.3125 0.5625 0.0111054 -0.375 0.5625 0.0205201 -0.4375 0.5625 0.0268108 -0.5 0.5625 0.0290198 -0.5625 0.5625 0.0268108 -0.625 0.5625 0.0205201 -0.6875 0.5625 0.0111054 -0.75 0.5625 7.58942e-18 -0.8125 0.5625 -0.0111054 -0.875 0.5625 -0.0205201 -0.9375 0.5625 -0.0268108 -1 0.5625 -0.0290198 - -0 0.625 -0.0222108 -0.0625 0.625 -0.0205201 -0.125 0.625 -0.0157054 -0.1875 0.625 -0.00849969 -0.25 0.625 -4.33681e-19 -0.3125 0.625 0.00849969 -0.375 0.625 0.0157054 -0.4375 0.625 0.0205201 -0.5 0.625 0.0222108 -0.5625 0.625 0.0205201 -0.625 0.625 0.0157054 -0.6875 0.625 0.00849969 -0.75 0.625 4.77049e-18 -0.8125 0.625 -0.00849969 -0.875 0.625 -0.0157054 -0.9375 0.625 -0.0205201 -1 0.625 -0.0222108 - -0 0.6875 -0.0120204 -0.0625 0.6875 -0.0111054 -0.125 0.6875 -0.00849969 -0.1875 0.6875 -0.0046 -0.25 0.6875 -2.71051e-19 -0.3125 0.6875 0.0046 -0.375 0.6875 0.00849969 -0.4375 0.6875 0.0111054 -0.5 0.6875 0.0120204 -0.5625 0.6875 0.0111054 -0.625 0.6875 0.00849969 -0.6875 0.6875 0.0046 -0.75 0.6875 3.1984e-18 -0.8125 0.6875 -0.0046 -0.875 0.6875 -0.00849969 -0.9375 0.6875 -0.0111054 -1 0.6875 -0.0120204 - -0 0.75 -1.04083e-17 -0.0625 0.75 -5.20417e-18 -0.125 0.75 -3.46945e-18 -0.1875 0.75 -3.46945e-18 -0.25 0.75 0 -0.3125 0.75 1.73472e-18 -0.375 0.75 3.46945e-18 -0.4375 0.75 5.20417e-18 -0.5 0.75 6.93889e-18 -0.5625 0.75 5.20417e-18 -0.625 0.75 6.93889e-18 -0.6875 0.75 1.73472e-18 -0.75 0.75 1.54074e-33 -0.8125 0.75 -2.60209e-18 -0.875 0.75 -5.20417e-18 -0.9375 0.75 -8.67362e-18 -1 0.75 -1.04083e-17 - -0 0.8125 0.0120204 -0.0625 0.8125 0.0111054 -0.125 0.8125 0.00849969 -0.1875 0.8125 0.0046 -0.25 0.8125 0 -0.3125 0.8125 -0.0046 -0.375 0.8125 -0.00849969 -0.4375 0.8125 -0.0111054 -0.5 0.8125 -0.0120204 -0.5625 0.8125 -0.0111054 -0.625 0.8125 -0.00849969 -0.6875 0.8125 -0.0046 -0.75 0.8125 -3.46945e-18 -0.8125 0.8125 0.0046 -0.875 0.8125 0.00849969 -0.9375 0.8125 0.0111054 -1 0.8125 0.0120204 - -0 0.875 0.0222108 -0.0625 0.875 0.0205201 -0.125 0.875 0.0157054 -0.1875 0.875 0.00849969 -0.25 0.875 0 -0.3125 0.875 -0.00849969 -0.375 0.875 -0.0157054 -0.4375 0.875 -0.0205201 -0.5 0.875 -0.0222108 -0.5625 0.875 -0.0205201 -0.625 0.875 -0.0157054 -0.6875 0.875 -0.00849969 -0.75 0.875 -5.20417e-18 -0.8125 0.875 0.00849969 -0.875 0.875 0.0157054 -0.9375 0.875 0.0205201 -1 0.875 0.0222108 - -0 0.9375 0.0290198 -0.0625 0.9375 0.0268108 -0.125 0.9375 0.0205201 -0.1875 0.9375 0.0111054 -0.25 0.9375 -8.67362e-19 -0.3125 0.9375 -0.0111054 -0.375 0.9375 -0.0205201 -0.4375 0.9375 -0.0268108 -0.5 0.9375 -0.0290198 -0.5625 0.9375 -0.0268108 -0.625 0.9375 -0.0205201 -0.6875 0.9375 -0.0111054 -0.75 0.9375 -7.80626e-18 -0.8125 0.9375 0.0111054 -0.875 0.9375 0.0205201 -0.9375 0.9375 0.0268108 -1 0.9375 0.0290198 - -0 1 0.0314108 -0.0625 1 0.0290198 -0.125 1 0.0222108 -0.1875 1 0.0120204 -0.25 1 0 -0.3125 1 -0.0120204 -0.375 1 -0.0222108 -0.4375 1 -0.0290198 -0.5 1 -0.0314108 -0.5625 1 -0.0290198 -0.625 1 -0.0222108 -0.6875 1 -0.0120204 -0.75 1 -1.04083e-17 -0.8125 1 0.0120204 -0.875 1 0.0222108 -0.9375 1 0.0290198 -1 1 0.0314108 - - -0 0 6.12323e-17 -0.0625 0 5.65713e-17 -0.125 0 4.32978e-17 -0.1875 0 2.34326e-17 -0.25 0 0 -0.3125 0 -2.34326e-17 -0.375 0 -4.32978e-17 -0.4375 0 -5.65713e-17 -0.5 0 -6.12323e-17 -0.5625 0 -5.65713e-17 -0.625 0 -4.32978e-17 -0.6875 0 -2.34326e-17 -0.75 0 -1.84889e-32 -0.8125 0 2.34326e-17 -0.875 0 4.32978e-17 -0.9375 0 5.65713e-17 -1 0 6.12323e-17 - -0 0.0625 5.65713e-17 -0.0625 0.0625 5.22651e-17 -0.125 0.0625 4.0002e-17 -0.1875 0.0625 2.16489e-17 -0.25 0.0625 1.15556e-33 -0.3125 0.0625 -2.16489e-17 -0.375 0.0625 -4.0002e-17 -0.4375 0.0625 -5.22651e-17 -0.5 0.0625 -5.65713e-17 -0.5625 0.0625 -5.22651e-17 -0.625 0.0625 -4.0002e-17 -0.6875 0.0625 -2.16489e-17 -0.75 0.0625 -1.73334e-32 -0.8125 0.0625 2.16489e-17 -0.875 0.0625 4.0002e-17 -0.9375 0.0625 5.22651e-17 -1 0.0625 5.65713e-17 - -0 0.125 4.32978e-17 -0.0625 0.125 4.0002e-17 -0.125 0.125 3.06162e-17 -0.1875 0.125 1.65694e-17 -0.25 0.125 -7.70372e-34 -0.3125 0.125 -1.65694e-17 -0.375 0.125 -3.06162e-17 -0.4375 0.125 -4.0002e-17 -0.5 0.125 -4.32978e-17 -0.5625 0.125 -4.0002e-17 -0.625 0.125 -3.06162e-17 -0.6875 0.125 -1.65694e-17 -0.75 0.125 -1.30963e-32 -0.8125 0.125 1.65694e-17 -0.875 0.125 3.06162e-17 -0.9375 0.125 4.0002e-17 -1 0.125 4.32978e-17 - -0 0.1875 2.34326e-17 -0.0625 0.1875 2.16489e-17 -0.125 0.1875 1.65694e-17 -0.1875 0.1875 8.96727e-18 -0.25 0.1875 -5.77779e-34 -0.3125 0.1875 -8.96727e-18 -0.375 0.1875 -1.65694e-17 -0.4375 0.1875 -2.16489e-17 -0.5 0.1875 -2.34326e-17 -0.5625 0.1875 -2.16489e-17 -0.625 0.1875 -1.65694e-17 -0.6875 0.1875 -8.96727e-18 -0.75 0.1875 -6.74075e-33 -0.8125 0.1875 8.96727e-18 -0.875 0.1875 1.65694e-17 -0.9375 0.1875 2.16489e-17 -1 0.1875 2.34326e-17 - -0 0.25 0 -0.0625 0.25 1.2326e-32 -0.125 0.25 3.08149e-33 -0.1875 0.25 1.54074e-33 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 -3.08149e-33 -0.4375 0.25 -6.16298e-33 -0.5 0.25 -6.16298e-33 -0.5625 0.25 -6.16298e-33 -0.625 0.25 -3.08149e-33 -0.6875 0.25 -3.08149e-33 -0.75 0.25 0 -0.8125 0.25 1.54074e-33 -0.875 0.25 0 -0.9375 0.25 6.16298e-33 -1 0.25 0 - -0 0.3125 -2.34326e-17 -0.0625 0.3125 -2.16489e-17 -0.125 0.3125 -1.65694e-17 -0.1875 0.3125 -8.96727e-18 -0.25 0.3125 0 -0.3125 0.3125 8.96727e-18 -0.375 0.3125 1.65694e-17 -0.4375 0.3125 2.16489e-17 -0.5 0.3125 2.34326e-17 -0.5625 0.3125 2.16489e-17 -0.625 0.3125 1.65694e-17 -0.6875 0.3125 8.96727e-18 -0.75 0.3125 6.16298e-33 -0.8125 0.3125 -8.96727e-18 -0.875 0.3125 -1.65694e-17 -0.9375 0.3125 -2.16489e-17 -1 0.3125 -2.34326e-17 - -0 0.375 -4.32978e-17 -0.0625 0.375 -4.0002e-17 -0.125 0.375 -3.06162e-17 -0.1875 0.375 -1.65694e-17 -0.25 0.375 0 -0.3125 0.375 1.65694e-17 -0.375 0.375 3.06162e-17 -0.4375 0.375 4.0002e-17 -0.5 0.375 4.32978e-17 -0.5625 0.375 4.0002e-17 -0.625 0.375 3.06162e-17 -0.6875 0.375 1.65694e-17 -0.75 0.375 1.2326e-32 -0.8125 0.375 -1.65694e-17 -0.875 0.375 -3.06162e-17 -0.9375 0.375 -4.0002e-17 -1 0.375 -4.32978e-17 - -0 0.4375 -5.65713e-17 -0.0625 0.4375 -5.22651e-17 -0.125 0.4375 -4.0002e-17 -0.1875 0.4375 -2.16489e-17 -0.25 0.4375 -1.54074e-33 -0.3125 0.4375 2.16489e-17 -0.375 0.4375 4.0002e-17 -0.4375 0.4375 5.22651e-17 -0.5 0.4375 5.65713e-17 -0.5625 0.4375 5.22651e-17 -0.625 0.4375 4.0002e-17 -0.6875 0.4375 2.16489e-17 -0.75 0.4375 1.69482e-32 -0.8125 0.4375 -2.16489e-17 -0.875 0.4375 -4.0002e-17 -0.9375 0.4375 -5.22651e-17 -1 0.4375 -5.65713e-17 - -0 0.5 -6.12323e-17 -0.0625 0.5 -5.65713e-17 -0.125 0.5 -4.32978e-17 -0.1875 0.5 -2.34326e-17 -0.25 0.5 0 -0.3125 0.5 2.34326e-17 -0.375 0.5 4.32978e-17 -0.4375 0.5 5.65713e-17 -0.5 0.5 6.12323e-17 -0.5625 0.5 5.65713e-17 -0.625 0.5 4.32978e-17 -0.6875 0.5 2.34326e-17 -0.75 0.5 1.84889e-32 -0.8125 0.5 -2.34326e-17 -0.875 0.5 -4.32978e-17 -0.9375 0.5 -5.65713e-17 -1 0.5 -6.12323e-17 - -0 0.5625 -5.65713e-17 -0.0625 0.5625 -5.22651e-17 -0.125 0.5625 -4.0002e-17 -0.1875 0.5625 -2.16489e-17 -0.25 0.5625 -1.54074e-33 -0.3125 0.5625 2.16489e-17 -0.375 0.5625 4.0002e-17 -0.4375 0.5625 5.22651e-17 -0.5 0.5625 5.65713e-17 -0.5625 0.5625 5.22651e-17 -0.625 0.5625 4.0002e-17 -0.6875 0.5625 2.16489e-17 -0.75 0.5625 1.69482e-32 -0.8125 0.5625 -2.16489e-17 -0.875 0.5625 -4.0002e-17 -0.9375 0.5625 -5.22651e-17 -1 0.5625 -5.65713e-17 - -0 0.625 -4.32978e-17 -0.0625 0.625 -4.0002e-17 -0.125 0.625 -3.06162e-17 -0.1875 0.625 -1.65694e-17 -0.25 0.625 0 -0.3125 0.625 1.65694e-17 -0.375 0.625 3.06162e-17 -0.4375 0.625 4.0002e-17 -0.5 0.625 4.32978e-17 -0.5625 0.625 4.0002e-17 -0.625 0.625 3.06162e-17 -0.6875 0.625 1.65694e-17 -0.75 0.625 1.2326e-32 -0.8125 0.625 -1.65694e-17 -0.875 0.625 -3.06162e-17 -0.9375 0.625 -4.0002e-17 -1 0.625 -4.32978e-17 - -0 0.6875 -2.34326e-17 -0.0625 0.6875 -2.16489e-17 -0.125 0.6875 -1.65694e-17 -0.1875 0.6875 -8.96727e-18 -0.25 0.6875 -1.92593e-34 -0.3125 0.6875 8.96727e-18 -0.375 0.6875 1.65694e-17 -0.4375 0.6875 2.16489e-17 -0.5 0.6875 2.34326e-17 -0.5625 0.6875 2.16489e-17 -0.625 0.6875 1.65694e-17 -0.6875 0.6875 8.96727e-18 -0.75 0.6875 5.97038e-33 -0.8125 0.6875 -8.96727e-18 -0.875 0.6875 -1.65694e-17 -0.9375 0.6875 -2.16489e-17 -1 0.6875 -2.34326e-17 - -0 0.75 -1.84889e-32 -0.0625 0.75 -6.16298e-33 -0.125 0.75 -9.24446e-33 -0.1875 0.75 -4.62223e-33 -0.25 0.75 0 -0.3125 0.75 6.16298e-33 -0.375 0.75 9.24446e-33 -0.4375 0.75 1.2326e-32 -0.5 0.75 1.2326e-32 -0.5625 0.75 1.2326e-32 -0.625 0.75 9.24446e-33 -0.6875 0.75 3.08149e-33 -0.75 0.75 2.73691e-48 -0.8125 0.75 -4.62223e-33 -0.875 0.75 -1.2326e-32 -0.9375 0.75 -1.2326e-32 -1 0.75 -1.84889e-32 - -0 0.8125 2.34326e-17 -0.0625 0.8125 2.16489e-17 -0.125 0.8125 1.65694e-17 -0.1875 0.8125 8.96727e-18 -0.25 0.8125 0 -0.3125 0.8125 -8.96727e-18 -0.375 0.8125 -1.65694e-17 -0.4375 0.8125 -2.16489e-17 -0.5 0.8125 -2.34326e-17 -0.5625 0.8125 -2.16489e-17 -0.625 0.8125 -1.65694e-17 -0.6875 0.8125 -8.96727e-18 -0.75 0.8125 -6.16298e-33 -0.8125 0.8125 8.96727e-18 -0.875 0.8125 1.65694e-17 -0.9375 0.8125 2.16489e-17 -1 0.8125 2.34326e-17 - -0 0.875 4.32978e-17 -0.0625 0.875 4.0002e-17 -0.125 0.875 3.06162e-17 -0.1875 0.875 1.65694e-17 -0.25 0.875 0 -0.3125 0.875 -1.65694e-17 -0.375 0.875 -3.06162e-17 -0.4375 0.875 -4.0002e-17 -0.5 0.875 -4.32978e-17 -0.5625 0.875 -4.0002e-17 -0.625 0.875 -3.06162e-17 -0.6875 0.875 -1.65694e-17 -0.75 0.875 -1.2326e-32 -0.8125 0.875 1.65694e-17 -0.875 0.875 3.06162e-17 -0.9375 0.875 4.0002e-17 -1 0.875 4.32978e-17 - -0 0.9375 5.65713e-17 -0.0625 0.9375 5.22651e-17 -0.125 0.9375 4.0002e-17 -0.1875 0.9375 2.16489e-17 -0.25 0.9375 1.54074e-33 -0.3125 0.9375 -2.16489e-17 -0.375 0.9375 -4.0002e-17 -0.4375 0.9375 -5.22651e-17 -0.5 0.9375 -5.65713e-17 -0.5625 0.9375 -5.22651e-17 -0.625 0.9375 -4.0002e-17 -0.6875 0.9375 -2.16489e-17 -0.75 0.9375 -1.69482e-32 -0.8125 0.9375 2.16489e-17 -0.875 0.9375 4.0002e-17 -0.9375 0.9375 5.22651e-17 -1 0.9375 5.65713e-17 - -0 1 6.12323e-17 -0.0625 1 5.65713e-17 -0.125 1 4.32978e-17 -0.1875 1 2.34326e-17 -0.25 1 0 -0.3125 1 -2.34326e-17 -0.375 1 -4.32978e-17 -0.4375 1 -5.65713e-17 -0.5 1 -6.12323e-17 -0.5625 1 -5.65713e-17 -0.625 1 -4.32978e-17 -0.6875 1 -2.34326e-17 -0.75 1 -1.84889e-32 -0.8125 1 2.34326e-17 -0.875 1 4.32978e-17 -0.9375 1 5.65713e-17 -1 1 6.12323e-17 - - -0 0 -0.0314108 -0.0625 0 -0.0290198 -0.125 0 -0.0222108 -0.1875 0 -0.0120204 -0.25 0 -3.46945e-18 -0.3125 0 0.0120204 -0.375 0 0.0222108 -0.4375 0 0.0290198 -0.5 0 0.0314108 -0.5625 0 0.0290198 -0.625 0 0.0222108 -0.6875 0 0.0120204 -0.75 0 6.93889e-18 -0.8125 0 -0.0120204 -0.875 0 -0.0222108 -0.9375 0 -0.0290198 -1 0 -0.0314108 - -0 0.0625 -0.0290198 -0.0625 0.0625 -0.0268108 -0.125 0.0625 -0.0205201 -0.1875 0.0625 -0.0111054 -0.25 0.0625 -1.51788e-18 -0.3125 0.0625 0.0111054 -0.375 0.0625 0.0205201 -0.4375 0.0625 0.0268108 -0.5 0.0625 0.0290198 -0.5625 0.0625 0.0268108 -0.625 0.0625 0.0205201 -0.6875 0.0625 0.0111054 -0.75 0.0625 5.42101e-18 -0.8125 0.0625 -0.0111054 -0.875 0.0625 -0.0205201 -0.9375 0.0625 -0.0268108 -1 0.0625 -0.0290198 - -0 0.125 -0.0222108 -0.0625 0.125 -0.0205201 -0.125 0.125 -0.0157054 -0.1875 0.125 -0.00849969 -0.25 0.125 -1.30104e-18 -0.3125 0.125 0.00849969 -0.375 0.125 0.0157054 -0.4375 0.125 0.0205201 -0.5 0.125 0.0222108 -0.5625 0.125 0.0205201 -0.625 0.125 0.0157054 -0.6875 0.125 0.00849969 -0.75 0.125 3.90313e-18 -0.8125 0.125 -0.00849969 -0.875 0.125 -0.0157054 -0.9375 0.125 -0.0205201 -1 0.125 -0.0222108 - -0 0.1875 -0.0120204 -0.0625 0.1875 -0.0111054 -0.125 0.1875 -0.00849969 -0.1875 0.1875 -0.0046 -0.25 0.1875 -5.96311e-19 -0.3125 0.1875 0.0046 -0.375 0.1875 0.00849969 -0.4375 0.1875 0.0111054 -0.5 0.1875 0.0120204 -0.5625 0.1875 0.0111054 -0.625 0.1875 0.00849969 -0.6875 0.1875 0.0046 -0.75 0.1875 2.87314e-18 -0.8125 0.1875 -0.0046 -0.875 0.1875 -0.00849969 -0.9375 0.1875 -0.0111054 -1 0.1875 -0.0120204 - -0 0.25 -3.46945e-18 -0.0625 0.25 -5.20417e-18 -0.125 0.25 -1.73472e-18 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 1.73472e-18 -0.4375 0.25 5.20417e-18 -0.5 0.25 3.46945e-18 -0.5625 0.25 3.46945e-18 -0.625 0.25 3.46945e-18 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 -1.73472e-18 -0.875 0.25 -3.46945e-18 -0.9375 0.25 -5.20417e-18 -1 0.25 -3.46945e-18 - -0 0.3125 0.0120204 -0.0625 0.3125 0.0111054 -0.125 0.3125 0.00849969 -0.1875 0.3125 0.0046 -0.25 0.3125 8.67362e-19 -0.3125 0.3125 -0.0046 -0.375 0.3125 -0.00849969 -0.4375 0.3125 -0.0111054 -0.5 0.3125 -0.0120204 -0.5625 0.3125 -0.0111054 -0.625 0.3125 -0.00849969 -0.6875 0.3125 -0.0046 -0.75 0.3125 -2.60209e-18 -0.8125 0.3125 0.0046 -0.875 0.3125 0.00849969 -0.9375 0.3125 0.0111054 -1 0.3125 0.0120204 - -0 0.375 0.0222108 -0.0625 0.375 0.0205201 -0.125 0.375 0.0157054 -0.1875 0.375 0.00849969 -0.25 0.375 1.73472e-18 -0.3125 0.375 -0.00849969 -0.375 0.375 -0.0157054 -0.4375 0.375 -0.0205201 -0.5 0.375 -0.0222108 -0.5625 0.375 -0.0205201 -0.625 0.375 -0.0157054 -0.6875 0.375 -0.00849969 -0.75 0.375 -3.46945e-18 -0.8125 0.375 0.00849969 -0.875 0.375 0.0157054 -0.9375 0.375 0.0205201 -1 0.375 0.0222108 - -0 0.4375 0.0290198 -0.0625 0.4375 0.0268108 -0.125 0.4375 0.0205201 -0.1875 0.4375 0.0111054 -0.25 0.4375 1.73472e-18 -0.3125 0.4375 -0.0111054 -0.375 0.4375 -0.0205201 -0.4375 0.4375 -0.0268108 -0.5 0.4375 -0.0290198 -0.5625 0.4375 -0.0268108 -0.625 0.4375 -0.0205201 -0.6875 0.4375 -0.0111054 -0.75 0.4375 -5.20417e-18 -0.8125 0.4375 0.0111054 -0.875 0.4375 0.0205201 -0.9375 0.4375 0.0268108 -1 0.4375 0.0290198 - -0 0.5 0.0314108 -0.0625 0.5 0.0290198 -0.125 0.5 0.0222108 -0.1875 0.5 0.0120204 -0.25 0.5 3.46945e-18 -0.3125 0.5 -0.0120204 -0.375 0.5 -0.0222108 -0.4375 0.5 -0.0290198 -0.5 0.5 -0.0314108 -0.5625 0.5 -0.0290198 -0.625 0.5 -0.0222108 -0.6875 0.5 -0.0120204 -0.75 0.5 -6.93889e-18 -0.8125 0.5 0.0120204 -0.875 0.5 0.0222108 -0.9375 0.5 0.0290198 -1 0.5 0.0314108 - -0 0.5625 0.0290198 -0.0625 0.5625 0.0268108 -0.125 0.5625 0.0205201 -0.1875 0.5625 0.0111054 -0.25 0.5625 1.95156e-18 -0.3125 0.5625 -0.0111054 -0.375 0.5625 -0.0205201 -0.4375 0.5625 -0.0268108 -0.5 0.5625 -0.0290198 -0.5625 0.5625 -0.0268108 -0.625 0.5625 -0.0205201 -0.6875 0.5625 -0.0111054 -0.75 0.5625 -4.98733e-18 -0.8125 0.5625 0.0111054 -0.875 0.5625 0.0205201 -0.9375 0.5625 0.0268108 -1 0.5625 0.0290198 - -0 0.625 0.0222108 -0.0625 0.625 0.0205201 -0.125 0.625 0.0157054 -0.1875 0.625 0.00849969 -0.25 0.625 2.1684e-18 -0.3125 0.625 -0.00849969 -0.375 0.625 -0.0157054 -0.4375 0.625 -0.0205201 -0.5 0.625 -0.0222108 -0.5625 0.625 -0.0205201 -0.625 0.625 -0.0157054 -0.6875 0.625 -0.00849969 -0.75 0.625 -3.03577e-18 -0.8125 0.625 0.00849969 -0.875 0.625 0.0157054 -0.9375 0.625 0.0205201 -1 0.625 0.0222108 - -0 0.6875 0.0120204 -0.0625 0.6875 0.0111054 -0.125 0.6875 0.00849969 -0.1875 0.6875 0.0046 -0.25 0.6875 1.13841e-18 -0.3125 0.6875 -0.0046 -0.375 0.6875 -0.00849969 -0.4375 0.6875 -0.0111054 -0.5 0.6875 -0.0120204 -0.5625 0.6875 -0.0111054 -0.625 0.6875 -0.00849969 -0.6875 0.6875 -0.0046 -0.75 0.6875 -2.33103e-18 -0.8125 0.6875 0.0046 -0.875 0.6875 0.00849969 -0.9375 0.6875 0.0111054 -1 0.6875 0.0120204 - -0 0.75 6.93889e-18 -0.0625 0.75 5.20417e-18 -0.125 0.75 5.20417e-18 -0.1875 0.75 3.46945e-18 -0.25 0.75 0 -0.3125 0.75 -3.46945e-18 -0.375 0.75 -5.20417e-18 -0.4375 0.75 -5.20417e-18 -0.5 0.75 -6.93889e-18 -0.5625 0.75 -6.93889e-18 -0.625 0.75 -3.46945e-18 -0.6875 0.75 -3.46945e-18 -0.75 0.75 -1.54074e-33 -0.8125 0.75 1.73472e-18 -0.875 0.75 3.46945e-18 -0.9375 0.75 5.20417e-18 -1 0.75 6.93889e-18 - -0 0.8125 -0.0120204 -0.0625 0.8125 -0.0111054 -0.125 0.8125 -0.00849969 -0.1875 0.8125 -0.0046 -0.25 0.8125 -8.67362e-19 -0.3125 0.8125 0.0046 -0.375 0.8125 0.00849969 -0.4375 0.8125 0.0111054 -0.5 0.8125 0.0120204 -0.5625 0.8125 0.0111054 -0.625 0.8125 0.00849969 -0.6875 0.8125 0.0046 -0.75 0.8125 2.60209e-18 -0.8125 0.8125 -0.0046 -0.875 0.8125 -0.00849969 -0.9375 0.8125 -0.0111054 -1 0.8125 -0.0120204 - -0 0.875 -0.0222108 -0.0625 0.875 -0.0205201 -0.125 0.875 -0.0157054 -0.1875 0.875 -0.00849969 -0.25 0.875 -1.73472e-18 -0.3125 0.875 0.00849969 -0.375 0.875 0.0157054 -0.4375 0.875 0.0205201 -0.5 0.875 0.0222108 -0.5625 0.875 0.0205201 -0.625 0.875 0.0157054 -0.6875 0.875 0.00849969 -0.75 0.875 3.46945e-18 -0.8125 0.875 -0.00849969 -0.875 0.875 -0.0157054 -0.9375 0.875 -0.0205201 -1 0.875 -0.0222108 - -0 0.9375 -0.0290198 -0.0625 0.9375 -0.0268108 -0.125 0.9375 -0.0205201 -0.1875 0.9375 -0.0111054 -0.25 0.9375 -1.73472e-18 -0.3125 0.9375 0.0111054 -0.375 0.9375 0.0205201 -0.4375 0.9375 0.0268108 -0.5 0.9375 0.0290198 -0.5625 0.9375 0.0268108 -0.625 0.9375 0.0205201 -0.6875 0.9375 0.0111054 -0.75 0.9375 5.20417e-18 -0.8125 0.9375 -0.0111054 -0.875 0.9375 -0.0205201 -0.9375 0.9375 -0.0268108 -1 0.9375 -0.0290198 - -0 1 -0.0314108 -0.0625 1 -0.0290198 -0.125 1 -0.0222108 -0.1875 1 -0.0120204 -0.25 1 -3.46945e-18 -0.3125 1 0.0120204 -0.375 1 0.0222108 -0.4375 1 0.0290198 -0.5 1 0.0314108 -0.5625 1 0.0290198 -0.625 1 0.0222108 -0.6875 1 0.0120204 -0.75 1 6.93889e-18 -0.8125 1 -0.0120204 -0.875 1 -0.0222108 -0.9375 1 -0.0290198 -1 1 -0.0314108 - - -0 0 -0.0627905 -0.0625 0 -0.0580109 -0.125 0 -0.0443996 -0.1875 0 -0.0240289 -0.25 0 0 -0.3125 0 0.0240289 -0.375 0 0.0443996 -0.4375 0 0.0580109 -0.5 0 0.0627905 -0.5625 0 0.0580109 -0.625 0 0.0443996 -0.6875 0 0.0240289 -0.75 0 2.08167e-17 -0.8125 0 -0.0240289 -0.875 0 -0.0443996 -0.9375 0 -0.0580109 -1 0 -0.0627905 - -0 0.0625 -0.0580109 -0.0625 0.0625 -0.0535951 -0.125 0.0625 -0.0410199 -0.1875 0.0625 -0.0221998 -0.25 0.0625 2.1684e-18 -0.3125 0.0625 0.0221998 -0.375 0.0625 0.0410199 -0.4375 0.0625 0.0535951 -0.5 0.0625 0.0580109 -0.5625 0.0625 0.0535951 -0.625 0.0625 0.0410199 -0.6875 0.0625 0.0221998 -0.75 0.0625 1.60462e-17 -0.8125 0.0625 -0.0221998 -0.875 0.0625 -0.0410199 -0.9375 0.0625 -0.0535951 -1 0.0625 -0.0580109 - -0 0.125 -0.0443996 -0.0625 0.125 -0.0410199 -0.125 0.125 -0.0313953 -0.1875 0.125 -0.016991 -0.25 0.125 8.67362e-19 -0.3125 0.125 0.016991 -0.375 0.125 0.0313953 -0.4375 0.125 0.0410199 -0.5 0.125 0.0443996 -0.5625 0.125 0.0410199 -0.625 0.125 0.0313953 -0.6875 0.125 0.016991 -0.75 0.125 1.12757e-17 -0.8125 0.125 -0.016991 -0.875 0.125 -0.0313953 -0.9375 0.125 -0.0410199 -1 0.125 -0.0443996 - -0 0.1875 -0.0240289 -0.0625 0.1875 -0.0221998 -0.125 0.1875 -0.016991 -0.1875 0.1875 -0.00919546 -0.25 0.1875 5.42101e-19 -0.3125 0.1875 0.00919546 -0.375 0.1875 0.016991 -0.4375 0.1875 0.0221998 -0.5 0.1875 0.0240289 -0.5625 0.1875 0.0221998 -0.625 0.1875 0.016991 -0.6875 0.1875 0.00919546 -0.75 0.1875 7.48099e-18 -0.8125 0.1875 -0.00919546 -0.875 0.1875 -0.016991 -0.9375 0.1875 -0.0221998 -1 0.1875 -0.0240289 - -0 0.25 0 -0.0625 0.25 -1.04083e-17 -0.125 0.25 0 -0.1875 0.25 -3.46945e-18 -0.25 0.25 0 -0.3125 0.25 1.73472e-18 -0.375 0.25 0 -0.4375 0.25 6.93889e-18 -0.5 0.25 6.93889e-18 -0.5625 0.25 1.04083e-17 -0.625 0.25 6.93889e-18 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 -3.46945e-18 -0.9375 0.25 -3.46945e-18 -1 0.25 0 - -0 0.3125 0.0240289 -0.0625 0.3125 0.0221998 -0.125 0.3125 0.016991 -0.1875 0.3125 0.00919546 -0.25 0.3125 0 -0.3125 0.3125 -0.00919546 -0.375 0.3125 -0.016991 -0.4375 0.3125 -0.0221998 -0.5 0.3125 -0.0240289 -0.5625 0.3125 -0.0221998 -0.625 0.3125 -0.016991 -0.6875 0.3125 -0.00919546 -0.75 0.3125 -6.93889e-18 -0.8125 0.3125 0.00919546 -0.875 0.3125 0.016991 -0.9375 0.3125 0.0221998 -1 0.3125 0.0240289 - -0 0.375 0.0443996 -0.0625 0.375 0.0410199 -0.125 0.375 0.0313953 -0.1875 0.375 0.016991 -0.25 0.375 0 -0.3125 0.375 -0.016991 -0.375 0.375 -0.0313953 -0.4375 0.375 -0.0410199 -0.5 0.375 -0.0443996 -0.5625 0.375 -0.0410199 -0.625 0.375 -0.0313953 -0.6875 0.375 -0.016991 -0.75 0.375 -1.04083e-17 -0.8125 0.375 0.016991 -0.875 0.375 0.0313953 -0.9375 0.375 0.0410199 -1 0.375 0.0443996 - -0 0.4375 0.0580109 -0.0625 0.4375 0.0535951 -0.125 0.4375 0.0410199 -0.1875 0.4375 0.0221998 -0.25 0.4375 -1.73472e-18 -0.3125 0.4375 -0.0221998 -0.375 0.4375 -0.0410199 -0.4375 0.4375 -0.0535951 -0.5 0.4375 -0.0580109 -0.5625 0.4375 -0.0535951 -0.625 0.4375 -0.0410199 -0.6875 0.4375 -0.0221998 -0.75 0.4375 -1.56125e-17 -0.8125 0.4375 0.0221998 -0.875 0.4375 0.0410199 -0.9375 0.4375 0.0535951 -1 0.4375 0.0580109 - -0 0.5 0.0627905 -0.0625 0.5 0.0580109 -0.125 0.5 0.0443996 -0.1875 0.5 0.0240289 -0.25 0.5 0 -0.3125 0.5 -0.0240289 -0.375 0.5 -0.0443996 -0.4375 0.5 -0.0580109 -0.5 0.5 -0.0627905 -0.5625 0.5 -0.0580109 -0.625 0.5 -0.0443996 -0.6875 0.5 -0.0240289 -0.75 0.5 -2.08167e-17 -0.8125 0.5 0.0240289 -0.875 0.5 0.0443996 -0.9375 0.5 0.0580109 -1 0.5 0.0627905 - -0 0.5625 0.0580109 -0.0625 0.5625 0.0535951 -0.125 0.5625 0.0410199 -0.1875 0.5625 0.0221998 -0.25 0.5625 -1.30104e-18 -0.3125 0.5625 -0.0221998 -0.375 0.5625 -0.0410199 -0.4375 0.5625 -0.0535951 -0.5 0.5625 -0.0580109 -0.5625 0.5625 -0.0535951 -0.625 0.5625 -0.0410199 -0.6875 0.5625 -0.0221998 -0.75 0.5625 -1.51788e-17 -0.8125 0.5625 0.0221998 -0.875 0.5625 0.0410199 -0.9375 0.5625 0.0535951 -1 0.5625 0.0580109 - -0 0.625 0.0443996 -0.0625 0.625 0.0410199 -0.125 0.625 0.0313953 -0.1875 0.625 0.016991 -0.25 0.625 8.67362e-19 -0.3125 0.625 -0.016991 -0.375 0.625 -0.0313953 -0.4375 0.625 -0.0410199 -0.5 0.625 -0.0443996 -0.5625 0.625 -0.0410199 -0.625 0.625 -0.0313953 -0.6875 0.625 -0.016991 -0.75 0.625 -9.54098e-18 -0.8125 0.625 0.016991 -0.875 0.625 0.0313953 -0.9375 0.625 0.0410199 -1 0.625 0.0443996 - -0 0.6875 0.0240289 -0.0625 0.6875 0.0221998 -0.125 0.6875 0.016991 -0.1875 0.6875 0.00919546 -0.25 0.6875 5.42101e-19 -0.3125 0.6875 -0.00919546 -0.375 0.6875 -0.016991 -0.4375 0.6875 -0.0221998 -0.5 0.6875 -0.0240289 -0.5625 0.6875 -0.0221998 -0.625 0.6875 -0.016991 -0.6875 0.6875 -0.00919546 -0.75 0.6875 -6.39679e-18 -0.8125 0.6875 0.00919546 -0.875 0.6875 0.016991 -0.9375 0.6875 0.0221998 -1 0.6875 0.0240289 - -0 0.75 2.08167e-17 -0.0625 0.75 1.04083e-17 -0.125 0.75 1.38778e-17 -0.1875 0.75 3.46945e-18 -0.25 0.75 0 -0.3125 0.75 -5.20417e-18 -0.375 0.75 -1.38778e-17 -0.4375 0.75 -1.38778e-17 -0.5 0.75 -1.38778e-17 -0.5625 0.75 -1.04083e-17 -0.625 0.75 -6.93889e-18 -0.6875 0.75 -6.93889e-18 -0.75 0.75 -3.08149e-33 -0.8125 0.75 6.93889e-18 -0.875 0.75 1.04083e-17 -0.9375 0.75 1.73472e-17 -1 0.75 2.08167e-17 - -0 0.8125 -0.0240289 -0.0625 0.8125 -0.0221998 -0.125 0.8125 -0.016991 -0.1875 0.8125 -0.00919546 -0.25 0.8125 0 -0.3125 0.8125 0.00919546 -0.375 0.8125 0.016991 -0.4375 0.8125 0.0221998 -0.5 0.8125 0.0240289 -0.5625 0.8125 0.0221998 -0.625 0.8125 0.016991 -0.6875 0.8125 0.00919546 -0.75 0.8125 6.93889e-18 -0.8125 0.8125 -0.00919546 -0.875 0.8125 -0.016991 -0.9375 0.8125 -0.0221998 -1 0.8125 -0.0240289 - -0 0.875 -0.0443996 -0.0625 0.875 -0.0410199 -0.125 0.875 -0.0313953 -0.1875 0.875 -0.016991 -0.25 0.875 0 -0.3125 0.875 0.016991 -0.375 0.875 0.0313953 -0.4375 0.875 0.0410199 -0.5 0.875 0.0443996 -0.5625 0.875 0.0410199 -0.625 0.875 0.0313953 -0.6875 0.875 0.016991 -0.75 0.875 1.04083e-17 -0.8125 0.875 -0.016991 -0.875 0.875 -0.0313953 -0.9375 0.875 -0.0410199 -1 0.875 -0.0443996 - -0 0.9375 -0.0580109 -0.0625 0.9375 -0.0535951 -0.125 0.9375 -0.0410199 -0.1875 0.9375 -0.0221998 -0.25 0.9375 1.73472e-18 -0.3125 0.9375 0.0221998 -0.375 0.9375 0.0410199 -0.4375 0.9375 0.0535951 -0.5 0.9375 0.0580109 -0.5625 0.9375 0.0535951 -0.625 0.9375 0.0410199 -0.6875 0.9375 0.0221998 -0.75 0.9375 1.56125e-17 -0.8125 0.9375 -0.0221998 -0.875 0.9375 -0.0410199 -0.9375 0.9375 -0.0535951 -1 0.9375 -0.0580109 - -0 1 -0.0627905 -0.0625 1 -0.0580109 -0.125 1 -0.0443996 -0.1875 1 -0.0240289 -0.25 1 0 -0.3125 1 0.0240289 -0.375 1 0.0443996 -0.4375 1 0.0580109 -0.5 1 0.0627905 -0.5625 1 0.0580109 -0.625 1 0.0443996 -0.6875 1 0.0240289 -0.75 1 2.08167e-17 -0.8125 1 -0.0240289 -0.875 1 -0.0443996 -0.9375 1 -0.0580109 -1 1 -0.0627905 - - -0 0 -0.0941083 -0.0625 0 -0.0869447 -0.125 0 -0.0665446 -0.1875 0 -0.0360137 -0.25 0 -6.93889e-18 -0.3125 0 0.0360137 -0.375 0 0.0665446 -0.4375 0 0.0869447 -0.5 0 0.0941083 -0.5625 0 0.0869447 -0.625 0 0.0665446 -0.6875 0 0.0360137 -0.75 0 1.38778e-17 -0.8125 0 -0.0360137 -0.875 0 -0.0665446 -0.9375 0 -0.0869447 -1 0 -0.0941083 - -0 0.0625 -0.0869447 -0.0625 0.0625 -0.0803265 -0.125 0.0625 -0.0614792 -0.1875 0.0625 -0.0332723 -0.25 0.0625 -6.07153e-18 -0.3125 0.0625 0.0332723 -0.375 0.0625 0.0614792 -0.4375 0.0625 0.0803265 -0.5 0.0625 0.0869447 -0.5625 0.0625 0.0803265 -0.625 0.0625 0.0614792 -0.6875 0.0625 0.0332723 -0.75 0.0625 1.47451e-17 -0.8125 0.0625 -0.0332723 -0.875 0.0625 -0.0614792 -0.9375 0.0625 -0.0803265 -1 0.0625 -0.0869447 - -0 0.125 -0.0665446 -0.0625 0.125 -0.0614792 -0.125 0.125 -0.0470542 -0.1875 0.125 -0.0254655 -0.25 0.125 -5.20417e-18 -0.3125 0.125 0.0254655 -0.375 0.125 0.0470542 -0.4375 0.125 0.0614792 -0.5 0.125 0.0665446 -0.5625 0.125 0.0614792 -0.625 0.125 0.0470542 -0.6875 0.125 0.0254655 -0.75 0.125 1.56125e-17 -0.8125 0.125 -0.0254655 -0.875 0.125 -0.0470542 -0.9375 0.125 -0.0614792 -1 0.125 -0.0665446 - -0 0.1875 -0.0360137 -0.0625 0.1875 -0.0332723 -0.125 0.1875 -0.0254655 -0.1875 0.1875 -0.0137818 -0.25 0.1875 -2.81893e-18 -0.3125 0.1875 0.0137818 -0.375 0.1875 0.0254655 -0.4375 0.1875 0.0332723 -0.5 0.1875 0.0360137 -0.5625 0.1875 0.0332723 -0.625 0.1875 0.0254655 -0.6875 0.1875 0.0137818 -0.75 0.1875 7.58942e-18 -0.8125 0.1875 -0.0137818 -0.875 0.1875 -0.0254655 -0.9375 0.1875 -0.0332723 -1 0.1875 -0.0360137 - -0 0.25 -6.93889e-18 -0.0625 0.25 -6.93889e-18 -0.125 0.25 -1.38778e-17 -0.1875 0.25 -3.46945e-18 -0.25 0.25 0 -0.3125 0.25 3.46945e-18 -0.375 0.25 1.38778e-17 -0.4375 0.25 0 -0.5 0.25 6.93889e-18 -0.5625 0.25 1.38778e-17 -0.625 0.25 6.93889e-18 -0.6875 0.25 3.46945e-18 -0.75 0.25 1.54074e-33 -0.8125 0.25 -3.46945e-18 -0.875 0.25 -6.93889e-18 -0.9375 0.25 -1.38778e-17 -1 0.25 -6.93889e-18 - -0 0.3125 0.0360137 -0.0625 0.3125 0.0332723 -0.125 0.3125 0.0254655 -0.1875 0.3125 0.0137818 -0.25 0.3125 3.46945e-18 -0.3125 0.3125 -0.0137818 -0.375 0.3125 -0.0254655 -0.4375 0.3125 -0.0332723 -0.5 0.3125 -0.0360137 -0.5625 0.3125 -0.0332723 -0.625 0.3125 -0.0254655 -0.6875 0.3125 -0.0137818 -0.75 0.3125 -6.93889e-18 -0.8125 0.3125 0.0137818 -0.875 0.3125 0.0254655 -0.9375 0.3125 0.0332723 -1 0.3125 0.0360137 - -0 0.375 0.0665446 -0.0625 0.375 0.0614792 -0.125 0.375 0.0470542 -0.1875 0.375 0.0254655 -0.25 0.375 6.93889e-18 -0.3125 0.375 -0.0254655 -0.375 0.375 -0.0470542 -0.4375 0.375 -0.0614792 -0.5 0.375 -0.0665446 -0.5625 0.375 -0.0614792 -0.625 0.375 -0.0470542 -0.6875 0.375 -0.0254655 -0.75 0.375 -1.38778e-17 -0.8125 0.375 0.0254655 -0.875 0.375 0.0470542 -0.9375 0.375 0.0614792 -1 0.375 0.0665446 - -0 0.4375 0.0869447 -0.0625 0.4375 0.0803265 -0.125 0.4375 0.0614792 -0.1875 0.4375 0.0332723 -0.25 0.4375 6.93889e-18 -0.3125 0.4375 -0.0332723 -0.375 0.4375 -0.0614792 -0.4375 0.4375 -0.0803265 -0.5 0.4375 -0.0869447 -0.5625 0.4375 -0.0803265 -0.625 0.4375 -0.0614792 -0.6875 0.4375 -0.0332723 -0.75 0.4375 -1.38778e-17 -0.8125 0.4375 0.0332723 -0.875 0.4375 0.0614792 -0.9375 0.4375 0.0803265 -1 0.4375 0.0869447 - -0 0.5 0.0941083 -0.0625 0.5 0.0869447 -0.125 0.5 0.0665446 -0.1875 0.5 0.0360137 -0.25 0.5 6.93889e-18 -0.3125 0.5 -0.0360137 -0.375 0.5 -0.0665446 -0.4375 0.5 -0.0869447 -0.5 0.5 -0.0941083 -0.5625 0.5 -0.0869447 -0.625 0.5 -0.0665446 -0.6875 0.5 -0.0360137 -0.75 0.5 -1.38778e-17 -0.8125 0.5 0.0360137 -0.875 0.5 0.0665446 -0.9375 0.5 0.0869447 -1 0.5 0.0941083 - -0 0.5625 0.0869447 -0.0625 0.5625 0.0803265 -0.125 0.5625 0.0614792 -0.1875 0.5625 0.0332723 -0.25 0.5625 6.93889e-18 -0.3125 0.5625 -0.0332723 -0.375 0.5625 -0.0614792 -0.4375 0.5625 -0.0803265 -0.5 0.5625 -0.0869447 -0.5625 0.5625 -0.0803265 -0.625 0.5625 -0.0614792 -0.6875 0.5625 -0.0332723 -0.75 0.5625 -1.38778e-17 -0.8125 0.5625 0.0332723 -0.875 0.5625 0.0614792 -0.9375 0.5625 0.0803265 -1 0.5625 0.0869447 - -0 0.625 0.0665446 -0.0625 0.625 0.0614792 -0.125 0.625 0.0470542 -0.1875 0.625 0.0254655 -0.25 0.625 6.93889e-18 -0.3125 0.625 -0.0254655 -0.375 0.625 -0.0470542 -0.4375 0.625 -0.0614792 -0.5 0.625 -0.0665446 -0.5625 0.625 -0.0614792 -0.625 0.625 -0.0470542 -0.6875 0.625 -0.0254655 -0.75 0.625 -1.38778e-17 -0.8125 0.625 0.0254655 -0.875 0.625 0.0470542 -0.9375 0.625 0.0614792 -1 0.625 0.0665446 - -0 0.6875 0.0360137 -0.0625 0.6875 0.0332723 -0.125 0.6875 0.0254655 -0.1875 0.6875 0.0137818 -0.25 0.6875 3.46945e-18 -0.3125 0.6875 -0.0137818 -0.375 0.6875 -0.0254655 -0.4375 0.6875 -0.0332723 -0.5 0.6875 -0.0360137 -0.5625 0.6875 -0.0332723 -0.625 0.6875 -0.0254655 -0.6875 0.6875 -0.0137818 -0.75 0.6875 -6.93889e-18 -0.8125 0.6875 0.0137818 -0.875 0.6875 0.0254655 -0.9375 0.6875 0.0332723 -1 0.6875 0.0360137 - -0 0.75 1.38778e-17 -0.0625 0.75 1.38778e-17 -0.125 0.75 6.93889e-18 -0.1875 0.75 6.93889e-18 -0.25 0.75 1.54074e-33 -0.3125 0.75 -6.93889e-18 -0.375 0.75 -6.93889e-18 -0.4375 0.75 -2.08167e-17 -0.5 0.75 -1.38778e-17 -0.5625 0.75 -6.93889e-18 -0.625 0.75 -1.38778e-17 -0.6875 0.75 -6.93889e-18 -0.75 0.75 -3.08149e-33 -0.8125 0.75 6.93889e-18 -0.875 0.75 6.93889e-18 -0.9375 0.75 6.93889e-18 -1 0.75 1.38778e-17 - -0 0.8125 -0.0360137 -0.0625 0.8125 -0.0332723 -0.125 0.8125 -0.0254655 -0.1875 0.8125 -0.0137818 -0.25 0.8125 -3.46945e-18 -0.3125 0.8125 0.0137818 -0.375 0.8125 0.0254655 -0.4375 0.8125 0.0332723 -0.5 0.8125 0.0360137 -0.5625 0.8125 0.0332723 -0.625 0.8125 0.0254655 -0.6875 0.8125 0.0137818 -0.75 0.8125 6.93889e-18 -0.8125 0.8125 -0.0137818 -0.875 0.8125 -0.0254655 -0.9375 0.8125 -0.0332723 -1 0.8125 -0.0360137 - -0 0.875 -0.0665446 -0.0625 0.875 -0.0614792 -0.125 0.875 -0.0470542 -0.1875 0.875 -0.0254655 -0.25 0.875 -6.93889e-18 -0.3125 0.875 0.0254655 -0.375 0.875 0.0470542 -0.4375 0.875 0.0614792 -0.5 0.875 0.0665446 -0.5625 0.875 0.0614792 -0.625 0.875 0.0470542 -0.6875 0.875 0.0254655 -0.75 0.875 1.38778e-17 -0.8125 0.875 -0.0254655 -0.875 0.875 -0.0470542 -0.9375 0.875 -0.0614792 -1 0.875 -0.0665446 - -0 0.9375 -0.0869447 -0.0625 0.9375 -0.0803265 -0.125 0.9375 -0.0614792 -0.1875 0.9375 -0.0332723 -0.25 0.9375 -6.93889e-18 -0.3125 0.9375 0.0332723 -0.375 0.9375 0.0614792 -0.4375 0.9375 0.0803265 -0.5 0.9375 0.0869447 -0.5625 0.9375 0.0803265 -0.625 0.9375 0.0614792 -0.6875 0.9375 0.0332723 -0.75 0.9375 1.38778e-17 -0.8125 0.9375 -0.0332723 -0.875 0.9375 -0.0614792 -0.9375 0.9375 -0.0803265 -1 0.9375 -0.0869447 - -0 1 -0.0941083 -0.0625 1 -0.0869447 -0.125 1 -0.0665446 -0.1875 1 -0.0360137 -0.25 1 -6.93889e-18 -0.3125 1 0.0360137 -0.375 1 0.0665446 -0.4375 1 0.0869447 -0.5 1 0.0941083 -0.5625 1 0.0869447 -0.625 1 0.0665446 -0.6875 1 0.0360137 -0.75 1 1.38778e-17 -0.8125 1 -0.0360137 -0.875 1 -0.0665446 -0.9375 1 -0.0869447 -1 1 -0.0941083 - - -0 0 -0.125333 -0.0625 0 -0.115793 -0.125 0 -0.088624 -0.1875 0 -0.047963 -0.25 0 -1.38778e-17 -0.3125 0 0.047963 -0.375 0 0.088624 -0.4375 0 0.115793 -0.5 0 0.125333 -0.5625 0 0.115793 -0.625 0 0.088624 -0.6875 0 0.047963 -0.75 0 2.77556e-17 -0.8125 0 -0.047963 -0.875 0 -0.088624 -0.9375 0 -0.115793 -1 0 -0.125333 - -0 0.0625 -0.115793 -0.0625 0.0625 -0.106979 -0.125 0.0625 -0.0818779 -0.1875 0.0625 -0.044312 -0.25 0.0625 -6.07153e-18 -0.3125 0.0625 0.044312 -0.375 0.0625 0.0818779 -0.4375 0.0625 0.106979 -0.5 0.0625 0.115793 -0.5625 0.0625 0.106979 -0.625 0.0625 0.0818779 -0.6875 0.0625 0.044312 -0.75 0.0625 2.1684e-17 -0.8125 0.0625 -0.044312 -0.875 0.0625 -0.0818779 -0.9375 0.0625 -0.106979 -1 0.0625 -0.115793 - -0 0.125 -0.088624 -0.0625 0.125 -0.0818779 -0.125 0.125 -0.0626666 -0.1875 0.125 -0.0339149 -0.25 0.125 -5.20417e-18 -0.3125 0.125 0.0339149 -0.375 0.125 0.0626666 -0.4375 0.125 0.0818779 -0.5 0.125 0.088624 -0.5625 0.125 0.0818779 -0.625 0.125 0.0626666 -0.6875 0.125 0.0339149 -0.75 0.125 1.56125e-17 -0.8125 0.125 -0.0339149 -0.875 0.125 -0.0626666 -0.9375 0.125 -0.0818779 -1 0.125 -0.088624 - -0 0.1875 -0.047963 -0.0625 0.1875 -0.044312 -0.125 0.1875 -0.0339149 -0.1875 0.1875 -0.0183546 -0.25 0.1875 -2.38524e-18 -0.3125 0.1875 0.0183546 -0.375 0.1875 0.0339149 -0.4375 0.1875 0.044312 -0.5 0.1875 0.047963 -0.5625 0.1875 0.044312 -0.625 0.1875 0.0339149 -0.6875 0.1875 0.0183546 -0.75 0.1875 1.14925e-17 -0.8125 0.1875 -0.0183546 -0.875 0.1875 -0.0339149 -0.9375 0.1875 -0.044312 -1 0.1875 -0.047963 - -0 0.25 -1.38778e-17 -0.0625 0.25 -1.38778e-17 -0.125 0.25 -6.93889e-18 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 3.46945e-18 -0.375 0.25 6.93889e-18 -0.4375 0.25 6.93889e-18 -0.5 0.25 1.38778e-17 -0.5625 0.25 6.93889e-18 -0.625 0.25 1.38778e-17 -0.6875 0.25 3.46945e-18 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 -1.38778e-17 -0.9375 0.25 -1.38778e-17 -1 0.25 -1.38778e-17 - -0 0.3125 0.047963 -0.0625 0.3125 0.044312 -0.125 0.3125 0.0339149 -0.1875 0.3125 0.0183546 -0.25 0.3125 3.46945e-18 -0.3125 0.3125 -0.0183546 -0.375 0.3125 -0.0339149 -0.4375 0.3125 -0.044312 -0.5 0.3125 -0.047963 -0.5625 0.3125 -0.044312 -0.625 0.3125 -0.0339149 -0.6875 0.3125 -0.0183546 -0.75 0.3125 -1.04083e-17 -0.8125 0.3125 0.0183546 -0.875 0.3125 0.0339149 -0.9375 0.3125 0.044312 -1 0.3125 0.047963 - -0 0.375 0.088624 -0.0625 0.375 0.0818779 -0.125 0.375 0.0626666 -0.1875 0.375 0.0339149 -0.25 0.375 6.93889e-18 -0.3125 0.375 -0.0339149 -0.375 0.375 -0.0626666 -0.4375 0.375 -0.0818779 -0.5 0.375 -0.088624 -0.5625 0.375 -0.0818779 -0.625 0.375 -0.0626666 -0.6875 0.375 -0.0339149 -0.75 0.375 -1.38778e-17 -0.8125 0.375 0.0339149 -0.875 0.375 0.0626666 -0.9375 0.375 0.0818779 -1 0.375 0.088624 - -0 0.4375 0.115793 -0.0625 0.4375 0.106979 -0.125 0.4375 0.0818779 -0.1875 0.4375 0.044312 -0.25 0.4375 6.93889e-18 -0.3125 0.4375 -0.044312 -0.375 0.4375 -0.0818779 -0.4375 0.4375 -0.106979 -0.5 0.4375 -0.115793 -0.5625 0.4375 -0.106979 -0.625 0.4375 -0.0818779 -0.6875 0.4375 -0.044312 -0.75 0.4375 -2.08167e-17 -0.8125 0.4375 0.044312 -0.875 0.4375 0.0818779 -0.9375 0.4375 0.106979 -1 0.4375 0.115793 - -0 0.5 0.125333 -0.0625 0.5 0.115793 -0.125 0.5 0.088624 -0.1875 0.5 0.047963 -0.25 0.5 1.38778e-17 -0.3125 0.5 -0.047963 -0.375 0.5 -0.088624 -0.4375 0.5 -0.115793 -0.5 0.5 -0.125333 -0.5625 0.5 -0.115793 -0.625 0.5 -0.088624 -0.6875 0.5 -0.047963 -0.75 0.5 -2.77556e-17 -0.8125 0.5 0.047963 -0.875 0.5 0.088624 -0.9375 0.5 0.115793 -1 0.5 0.125333 - -0 0.5625 0.115793 -0.0625 0.5625 0.106979 -0.125 0.5625 0.0818779 -0.1875 0.5625 0.044312 -0.25 0.5625 7.80626e-18 -0.3125 0.5625 -0.044312 -0.375 0.5625 -0.0818779 -0.4375 0.5625 -0.106979 -0.5 0.5625 -0.115793 -0.5625 0.5625 -0.106979 -0.625 0.5625 -0.0818779 -0.6875 0.5625 -0.044312 -0.75 0.5625 -1.99493e-17 -0.8125 0.5625 0.044312 -0.875 0.5625 0.0818779 -0.9375 0.5625 0.106979 -1 0.5625 0.115793 - -0 0.625 0.088624 -0.0625 0.625 0.0818779 -0.125 0.625 0.0626666 -0.1875 0.625 0.0339149 -0.25 0.625 8.67362e-18 -0.3125 0.625 -0.0339149 -0.375 0.625 -0.0626666 -0.4375 0.625 -0.0818779 -0.5 0.625 -0.088624 -0.5625 0.625 -0.0818779 -0.625 0.625 -0.0626666 -0.6875 0.625 -0.0339149 -0.75 0.625 -1.21431e-17 -0.8125 0.625 0.0339149 -0.875 0.625 0.0626666 -0.9375 0.625 0.0818779 -1 0.625 0.088624 - -0 0.6875 0.047963 -0.0625 0.6875 0.044312 -0.125 0.6875 0.0339149 -0.1875 0.6875 0.0183546 -0.25 0.6875 4.55365e-18 -0.3125 0.6875 -0.0183546 -0.375 0.6875 -0.0339149 -0.4375 0.6875 -0.044312 -0.5 0.6875 -0.047963 -0.5625 0.6875 -0.044312 -0.625 0.6875 -0.0339149 -0.6875 0.6875 -0.0183546 -0.75 0.6875 -9.32414e-18 -0.8125 0.6875 0.0183546 -0.875 0.6875 0.0339149 -0.9375 0.6875 0.044312 -1 0.6875 0.047963 - -0 0.75 2.77556e-17 -0.0625 0.75 2.77556e-17 -0.125 0.75 2.08167e-17 -0.1875 0.75 1.38778e-17 -0.25 0.75 0 -0.3125 0.75 -1.04083e-17 -0.375 0.75 -2.08167e-17 -0.4375 0.75 -3.46945e-17 -0.5 0.75 -2.77556e-17 -0.5625 0.75 -3.46945e-17 -0.625 0.75 -1.38778e-17 -0.6875 0.75 -1.04083e-17 -0.75 0.75 -6.16298e-33 -0.8125 0.75 1.38778e-17 -0.875 0.75 1.38778e-17 -0.9375 0.75 2.77556e-17 -1 0.75 2.77556e-17 - -0 0.8125 -0.047963 -0.0625 0.8125 -0.044312 -0.125 0.8125 -0.0339149 -0.1875 0.8125 -0.0183546 -0.25 0.8125 -3.46945e-18 -0.3125 0.8125 0.0183546 -0.375 0.8125 0.0339149 -0.4375 0.8125 0.044312 -0.5 0.8125 0.047963 -0.5625 0.8125 0.044312 -0.625 0.8125 0.0339149 -0.6875 0.8125 0.0183546 -0.75 0.8125 1.04083e-17 -0.8125 0.8125 -0.0183546 -0.875 0.8125 -0.0339149 -0.9375 0.8125 -0.044312 -1 0.8125 -0.047963 - -0 0.875 -0.088624 -0.0625 0.875 -0.0818779 -0.125 0.875 -0.0626666 -0.1875 0.875 -0.0339149 -0.25 0.875 -6.93889e-18 -0.3125 0.875 0.0339149 -0.375 0.875 0.0626666 -0.4375 0.875 0.0818779 -0.5 0.875 0.088624 -0.5625 0.875 0.0818779 -0.625 0.875 0.0626666 -0.6875 0.875 0.0339149 -0.75 0.875 1.38778e-17 -0.8125 0.875 -0.0339149 -0.875 0.875 -0.0626666 -0.9375 0.875 -0.0818779 -1 0.875 -0.088624 - -0 0.9375 -0.115793 -0.0625 0.9375 -0.106979 -0.125 0.9375 -0.0818779 -0.1875 0.9375 -0.044312 -0.25 0.9375 -6.93889e-18 -0.3125 0.9375 0.044312 -0.375 0.9375 0.0818779 -0.4375 0.9375 0.106979 -0.5 0.9375 0.115793 -0.5625 0.9375 0.106979 -0.625 0.9375 0.0818779 -0.6875 0.9375 0.044312 -0.75 0.9375 2.08167e-17 -0.8125 0.9375 -0.044312 -0.875 0.9375 -0.0818779 -0.9375 0.9375 -0.106979 -1 0.9375 -0.115793 - -0 1 -0.125333 -0.0625 1 -0.115793 -0.125 1 -0.088624 -0.1875 1 -0.047963 -0.25 1 -1.38778e-17 -0.3125 1 0.047963 -0.375 1 0.088624 -0.4375 1 0.115793 -0.5 1 0.125333 -0.5625 1 0.115793 -0.625 1 0.088624 -0.6875 1 0.047963 -0.75 1 2.77556e-17 -0.8125 1 -0.047963 -0.875 1 -0.088624 -0.9375 1 -0.115793 -1 1 -0.125333 - - -0 0 -0.156434 -0.0625 0 -0.144527 -0.125 0 -0.110616 -0.1875 0 -0.0598649 -0.25 0 0 -0.3125 0 0.0598649 -0.375 0 0.110616 -0.4375 0 0.144527 -0.5 0 0.156434 -0.5625 0 0.144527 -0.625 0 0.110616 -0.6875 0 0.0598649 -0.75 0 4.16334e-17 -0.8125 0 -0.0598649 -0.875 0 -0.110616 -0.9375 0 -0.144527 -1 0 -0.156434 - -0 0.0625 -0.144527 -0.0625 0.0625 -0.133525 -0.125 0.0625 -0.102196 -0.1875 0.0625 -0.0553079 -0.25 0.0625 -5.20417e-18 -0.3125 0.0625 0.0553079 -0.375 0.0625 0.102196 -0.4375 0.0625 0.133525 -0.5 0.0625 0.144527 -0.5625 0.0625 0.133525 -0.625 0.0625 0.102196 -0.6875 0.0625 0.0553079 -0.75 0.0625 3.64292e-17 -0.8125 0.0625 -0.0553079 -0.875 0.0625 -0.102196 -0.9375 0.0625 -0.133525 -1 0.0625 -0.144527 - -0 0.125 -0.110616 -0.0625 0.125 -0.102196 -0.125 0.125 -0.0782172 -0.1875 0.125 -0.0423309 -0.25 0.125 -3.46945e-18 -0.3125 0.125 0.0423309 -0.375 0.125 0.0782172 -0.4375 0.125 0.102196 -0.5 0.125 0.110616 -0.5625 0.125 0.102196 -0.625 0.125 0.0782172 -0.6875 0.125 0.0423309 -0.75 0.125 2.42861e-17 -0.8125 0.125 -0.0423309 -0.875 0.125 -0.0782172 -0.9375 0.125 -0.102196 -1 0.125 -0.110616 - -0 0.1875 -0.0598649 -0.0625 0.1875 -0.0553079 -0.125 0.1875 -0.0423309 -0.1875 0.1875 -0.0229093 -0.25 0.1875 -1.73472e-18 -0.3125 0.1875 0.0229093 -0.375 0.1875 0.0423309 -0.4375 0.1875 0.0553079 -0.5 0.1875 0.0598649 -0.5625 0.1875 0.0553079 -0.625 0.1875 0.0423309 -0.6875 0.1875 0.0229093 -0.75 0.1875 1.21431e-17 -0.8125 0.1875 -0.0229093 -0.875 0.1875 -0.0423309 -0.9375 0.1875 -0.0553079 -1 0.1875 -0.0598649 - -0 0.25 0 -0.0625 0.25 -1.38778e-17 -0.125 0.25 -2.08167e-17 -0.1875 0.25 -6.93889e-18 -0.25 0.25 0 -0.3125 0.25 6.93889e-18 -0.375 0.25 2.08167e-17 -0.4375 0.25 1.38778e-17 -0.5 0.25 1.38778e-17 -0.5625 0.25 1.38778e-17 -0.625 0.25 6.93889e-18 -0.6875 0.25 1.04083e-17 -0.75 0.25 0 -0.8125 0.25 -6.93889e-18 -0.875 0.25 -1.38778e-17 -0.9375 0.25 -1.38778e-17 -1 0.25 0 - -0 0.3125 0.0598649 -0.0625 0.3125 0.0553079 -0.125 0.3125 0.0423309 -0.1875 0.3125 0.0229093 -0.25 0.3125 0 -0.3125 0.3125 -0.0229093 -0.375 0.3125 -0.0423309 -0.4375 0.3125 -0.0553079 -0.5 0.3125 -0.0598649 -0.5625 0.3125 -0.0553079 -0.625 0.3125 -0.0423309 -0.6875 0.3125 -0.0229093 -0.75 0.3125 -1.38778e-17 -0.8125 0.3125 0.0229093 -0.875 0.3125 0.0423309 -0.9375 0.3125 0.0553079 -1 0.3125 0.0598649 - -0 0.375 0.110616 -0.0625 0.375 0.102196 -0.125 0.375 0.0782172 -0.1875 0.375 0.0423309 -0.25 0.375 0 -0.3125 0.375 -0.0423309 -0.375 0.375 -0.0782172 -0.4375 0.375 -0.102196 -0.5 0.375 -0.110616 -0.5625 0.375 -0.102196 -0.625 0.375 -0.0782172 -0.6875 0.375 -0.0423309 -0.75 0.375 -2.77556e-17 -0.8125 0.375 0.0423309 -0.875 0.375 0.0782172 -0.9375 0.375 0.102196 -1 0.375 0.110616 - -0 0.4375 0.144527 -0.0625 0.4375 0.133525 -0.125 0.4375 0.102196 -0.1875 0.4375 0.0553079 -0.25 0.4375 3.46945e-18 -0.3125 0.4375 -0.0553079 -0.375 0.4375 -0.102196 -0.4375 0.4375 -0.133525 -0.5 0.4375 -0.144527 -0.5625 0.4375 -0.133525 -0.625 0.4375 -0.102196 -0.6875 0.4375 -0.0553079 -0.75 0.4375 -3.81639e-17 -0.8125 0.4375 0.0553079 -0.875 0.4375 0.102196 -0.9375 0.4375 0.133525 -1 0.4375 0.144527 - -0 0.5 0.156434 -0.0625 0.5 0.144527 -0.125 0.5 0.110616 -0.1875 0.5 0.0598649 -0.25 0.5 0 -0.3125 0.5 -0.0598649 -0.375 0.5 -0.110616 -0.4375 0.5 -0.144527 -0.5 0.5 -0.156434 -0.5625 0.5 -0.144527 -0.625 0.5 -0.110616 -0.6875 0.5 -0.0598649 -0.75 0.5 -4.16334e-17 -0.8125 0.5 0.0598649 -0.875 0.5 0.110616 -0.9375 0.5 0.144527 -1 0.5 0.156434 - -0 0.5625 0.144527 -0.0625 0.5625 0.133525 -0.125 0.5625 0.102196 -0.1875 0.5625 0.0553079 -0.25 0.5625 3.46945e-18 -0.3125 0.5625 -0.0553079 -0.375 0.5625 -0.102196 -0.4375 0.5625 -0.133525 -0.5 0.5625 -0.144527 -0.5625 0.5625 -0.133525 -0.625 0.5625 -0.102196 -0.6875 0.5625 -0.0553079 -0.75 0.5625 -3.81639e-17 -0.8125 0.5625 0.0553079 -0.875 0.5625 0.102196 -0.9375 0.5625 0.133525 -1 0.5625 0.144527 - -0 0.625 0.110616 -0.0625 0.625 0.102196 -0.125 0.625 0.0782172 -0.1875 0.625 0.0423309 -0.25 0.625 1.54074e-33 -0.3125 0.625 -0.0423309 -0.375 0.625 -0.0782172 -0.4375 0.625 -0.102196 -0.5 0.625 -0.110616 -0.5625 0.625 -0.102196 -0.625 0.625 -0.0782172 -0.6875 0.625 -0.0423309 -0.75 0.625 -2.77556e-17 -0.8125 0.625 0.0423309 -0.875 0.625 0.0782172 -0.9375 0.625 0.102196 -1 0.625 0.110616 - -0 0.6875 0.0598649 -0.0625 0.6875 0.0553079 -0.125 0.6875 0.0423309 -0.1875 0.6875 0.0229093 -0.25 0.6875 -4.33681e-19 -0.3125 0.6875 -0.0229093 -0.375 0.6875 -0.0423309 -0.4375 0.6875 -0.0553079 -0.5 0.6875 -0.0598649 -0.5625 0.6875 -0.0553079 -0.625 0.6875 -0.0423309 -0.6875 0.6875 -0.0229093 -0.75 0.6875 -1.43115e-17 -0.8125 0.6875 0.0229093 -0.875 0.6875 0.0423309 -0.9375 0.6875 0.0553079 -1 0.6875 0.0598649 - -0 0.75 4.16334e-17 -0.0625 0.75 2.77556e-17 -0.125 0.75 1.38778e-17 -0.1875 0.75 1.04083e-17 -0.25 0.75 3.08149e-33 -0.3125 0.75 -1.04083e-17 -0.375 0.75 -1.38778e-17 -0.4375 0.75 -2.77556e-17 -0.5 0.75 -2.77556e-17 -0.5625 0.75 -2.77556e-17 -0.625 0.75 -2.77556e-17 -0.6875 0.75 -6.93889e-18 -0.75 0.75 -6.16298e-33 -0.8125 0.75 1.04083e-17 -0.875 0.75 2.08167e-17 -0.9375 0.75 2.77556e-17 -1 0.75 4.16334e-17 - -0 0.8125 -0.0598649 -0.0625 0.8125 -0.0553079 -0.125 0.8125 -0.0423309 -0.1875 0.8125 -0.0229093 -0.25 0.8125 2.31112e-33 -0.3125 0.8125 0.0229093 -0.375 0.8125 0.0423309 -0.4375 0.8125 0.0553079 -0.5 0.8125 0.0598649 -0.5625 0.8125 0.0553079 -0.625 0.8125 0.0423309 -0.6875 0.8125 0.0229093 -0.75 0.8125 1.38778e-17 -0.8125 0.8125 -0.0229093 -0.875 0.8125 -0.0423309 -0.9375 0.8125 -0.0553079 -1 0.8125 -0.0598649 - -0 0.875 -0.110616 -0.0625 0.875 -0.102196 -0.125 0.875 -0.0782172 -0.1875 0.875 -0.0423309 -0.25 0.875 1.54074e-33 -0.3125 0.875 0.0423309 -0.375 0.875 0.0782172 -0.4375 0.875 0.102196 -0.5 0.875 0.110616 -0.5625 0.875 0.102196 -0.625 0.875 0.0782172 -0.6875 0.875 0.0423309 -0.75 0.875 2.77556e-17 -0.8125 0.875 -0.0423309 -0.875 0.875 -0.0782172 -0.9375 0.875 -0.102196 -1 0.875 -0.110616 - -0 0.9375 -0.144527 -0.0625 0.9375 -0.133525 -0.125 0.9375 -0.102196 -0.1875 0.9375 -0.0553079 -0.25 0.9375 -3.46945e-18 -0.3125 0.9375 0.0553079 -0.375 0.9375 0.102196 -0.4375 0.9375 0.133525 -0.5 0.9375 0.144527 -0.5625 0.9375 0.133525 -0.625 0.9375 0.102196 -0.6875 0.9375 0.0553079 -0.75 0.9375 3.81639e-17 -0.8125 0.9375 -0.0553079 -0.875 0.9375 -0.102196 -0.9375 0.9375 -0.133525 -1 0.9375 -0.144527 - -0 1 -0.156434 -0.0625 1 -0.144527 -0.125 1 -0.110616 -0.1875 1 -0.0598649 -0.25 1 0 -0.3125 1 0.0598649 -0.375 1 0.110616 -0.4375 1 0.144527 -0.5 1 0.156434 -0.5625 1 0.144527 -0.625 1 0.110616 -0.6875 1 0.0598649 -0.75 1 4.16334e-17 -0.8125 1 -0.0598649 -0.875 1 -0.110616 -0.9375 1 -0.144527 -1 1 -0.156434 - - -0 0 -0.187381 -0.0625 0 -0.173118 -0.125 0 -0.132499 -0.1875 0 -0.0717077 -0.25 0 -1.38778e-17 -0.3125 0 0.0717077 -0.375 0 0.132499 -0.4375 0 0.173118 -0.5 0 0.187381 -0.5625 0 0.173118 -0.625 0 0.132499 -0.6875 0 0.0717077 -0.75 0 2.77556e-17 -0.8125 0 -0.0717077 -0.875 0 -0.132499 -0.9375 0 -0.173118 -1 0 -0.187381 - -0 0.0625 -0.173118 -0.0625 0.0625 -0.15994 -0.125 0.0625 -0.122413 -0.1875 0.0625 -0.0662493 -0.25 0.0625 -1.21431e-17 -0.3125 0.0625 0.0662493 -0.375 0.0625 0.122413 -0.4375 0.0625 0.15994 -0.5 0.0625 0.173118 -0.5625 0.0625 0.15994 -0.625 0.0625 0.122413 -0.6875 0.0625 0.0662493 -0.75 0.0625 2.94903e-17 -0.8125 0.0625 -0.0662493 -0.875 0.0625 -0.122413 -0.9375 0.0625 -0.15994 -1 0.0625 -0.173118 - -0 0.125 -0.132499 -0.0625 0.125 -0.122413 -0.125 0.125 -0.0936907 -0.1875 0.125 -0.050705 -0.25 0.125 -1.04083e-17 -0.3125 0.125 0.050705 -0.375 0.125 0.0936907 -0.4375 0.125 0.122413 -0.5 0.125 0.132499 -0.5625 0.125 0.122413 -0.625 0.125 0.0936907 -0.6875 0.125 0.050705 -0.75 0.125 3.1225e-17 -0.8125 0.125 -0.050705 -0.875 0.125 -0.0936907 -0.9375 0.125 -0.122413 -1 0.125 -0.132499 - -0 0.1875 -0.0717077 -0.0625 0.1875 -0.0662493 -0.125 0.1875 -0.050705 -0.1875 0.1875 -0.0274414 -0.25 0.1875 -5.63785e-18 -0.3125 0.1875 0.0274414 -0.375 0.1875 0.050705 -0.4375 0.1875 0.0662493 -0.5 0.1875 0.0717077 -0.5625 0.1875 0.0662493 -0.625 0.1875 0.050705 -0.6875 0.1875 0.0274414 -0.75 0.1875 1.51788e-17 -0.8125 0.1875 -0.0274414 -0.875 0.1875 -0.050705 -0.9375 0.1875 -0.0662493 -1 0.1875 -0.0717077 - -0 0.25 -1.38778e-17 -0.0625 0.25 -1.38778e-17 -0.125 0.25 -1.38778e-17 -0.1875 0.25 -6.93889e-18 -0.25 0.25 0 -0.3125 0.25 6.93889e-18 -0.375 0.25 1.38778e-17 -0.4375 0.25 1.38778e-17 -0.5 0.25 1.38778e-17 -0.5625 0.25 0 -0.625 0.25 1.38778e-17 -0.6875 0.25 1.38778e-17 -0.75 0.25 3.08149e-33 -0.8125 0.25 -1.38778e-17 -0.875 0.25 -1.38778e-17 -0.9375 0.25 -1.38778e-17 -1 0.25 -1.38778e-17 - -0 0.3125 0.0717077 -0.0625 0.3125 0.0662493 -0.125 0.3125 0.050705 -0.1875 0.3125 0.0274414 -0.25 0.3125 6.93889e-18 -0.3125 0.3125 -0.0274414 -0.375 0.3125 -0.050705 -0.4375 0.3125 -0.0662493 -0.5 0.3125 -0.0717077 -0.5625 0.3125 -0.0662493 -0.625 0.3125 -0.050705 -0.6875 0.3125 -0.0274414 -0.75 0.3125 -1.38778e-17 -0.8125 0.3125 0.0274414 -0.875 0.3125 0.050705 -0.9375 0.3125 0.0662493 -1 0.3125 0.0717077 - -0 0.375 0.132499 -0.0625 0.375 0.122413 -0.125 0.375 0.0936907 -0.1875 0.375 0.050705 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.050705 -0.375 0.375 -0.0936907 -0.4375 0.375 -0.122413 -0.5 0.375 -0.132499 -0.5625 0.375 -0.122413 -0.625 0.375 -0.0936907 -0.6875 0.375 -0.050705 -0.75 0.375 -2.77556e-17 -0.8125 0.375 0.050705 -0.875 0.375 0.0936907 -0.9375 0.375 0.122413 -1 0.375 0.132499 - -0 0.4375 0.173118 -0.0625 0.4375 0.15994 -0.125 0.4375 0.122413 -0.1875 0.4375 0.0662493 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.0662493 -0.375 0.4375 -0.122413 -0.4375 0.4375 -0.15994 -0.5 0.4375 -0.173118 -0.5625 0.4375 -0.15994 -0.625 0.4375 -0.122413 -0.6875 0.4375 -0.0662493 -0.75 0.4375 -2.77556e-17 -0.8125 0.4375 0.0662493 -0.875 0.4375 0.122413 -0.9375 0.4375 0.15994 -1 0.4375 0.173118 - -0 0.5 0.187381 -0.0625 0.5 0.173118 -0.125 0.5 0.132499 -0.1875 0.5 0.0717077 -0.25 0.5 1.38778e-17 -0.3125 0.5 -0.0717077 -0.375 0.5 -0.132499 -0.4375 0.5 -0.173118 -0.5 0.5 -0.187381 -0.5625 0.5 -0.173118 -0.625 0.5 -0.132499 -0.6875 0.5 -0.0717077 -0.75 0.5 -2.77556e-17 -0.8125 0.5 0.0717077 -0.875 0.5 0.132499 -0.9375 0.5 0.173118 -1 0.5 0.187381 - -0 0.5625 0.173118 -0.0625 0.5625 0.15994 -0.125 0.5625 0.122413 -0.1875 0.5625 0.0662493 -0.25 0.5625 1.38778e-17 -0.3125 0.5625 -0.0662493 -0.375 0.5625 -0.122413 -0.4375 0.5625 -0.15994 -0.5 0.5625 -0.173118 -0.5625 0.5625 -0.15994 -0.625 0.5625 -0.122413 -0.6875 0.5625 -0.0662493 -0.75 0.5625 -2.77556e-17 -0.8125 0.5625 0.0662493 -0.875 0.5625 0.122413 -0.9375 0.5625 0.15994 -1 0.5625 0.173118 - -0 0.625 0.132499 -0.0625 0.625 0.122413 -0.125 0.625 0.0936907 -0.1875 0.625 0.050705 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.050705 -0.375 0.625 -0.0936907 -0.4375 0.625 -0.122413 -0.5 0.625 -0.132499 -0.5625 0.625 -0.122413 -0.625 0.625 -0.0936907 -0.6875 0.625 -0.050705 -0.75 0.625 -2.77556e-17 -0.8125 0.625 0.050705 -0.875 0.625 0.0936907 -0.9375 0.625 0.122413 -1 0.625 0.132499 - -0 0.6875 0.0717077 -0.0625 0.6875 0.0662493 -0.125 0.6875 0.050705 -0.1875 0.6875 0.0274414 -0.25 0.6875 6.93889e-18 -0.3125 0.6875 -0.0274414 -0.375 0.6875 -0.050705 -0.4375 0.6875 -0.0662493 -0.5 0.6875 -0.0717077 -0.5625 0.6875 -0.0662493 -0.625 0.6875 -0.050705 -0.6875 0.6875 -0.0274414 -0.75 0.6875 -1.38778e-17 -0.8125 0.6875 0.0274414 -0.875 0.6875 0.050705 -0.9375 0.6875 0.0662493 -1 0.6875 0.0717077 - -0 0.75 2.77556e-17 -0.0625 0.75 2.77556e-17 -0.125 0.75 2.77556e-17 -0.1875 0.75 1.38778e-17 -0.25 0.75 3.08149e-33 -0.3125 0.75 -1.38778e-17 -0.375 0.75 -2.77556e-17 -0.4375 0.75 -2.77556e-17 -0.5 0.75 -2.77556e-17 -0.5625 0.75 -4.16334e-17 -0.625 0.75 -2.77556e-17 -0.6875 0.75 -6.93889e-18 -0.75 0.75 -6.16298e-33 -0.8125 0.75 6.93889e-18 -0.875 0.75 1.38778e-17 -0.9375 0.75 2.77556e-17 -1 0.75 2.77556e-17 - -0 0.8125 -0.0717077 -0.0625 0.8125 -0.0662493 -0.125 0.8125 -0.050705 -0.1875 0.8125 -0.0274414 -0.25 0.8125 -6.93889e-18 -0.3125 0.8125 0.0274414 -0.375 0.8125 0.050705 -0.4375 0.8125 0.0662493 -0.5 0.8125 0.0717077 -0.5625 0.8125 0.0662493 -0.625 0.8125 0.050705 -0.6875 0.8125 0.0274414 -0.75 0.8125 1.38778e-17 -0.8125 0.8125 -0.0274414 -0.875 0.8125 -0.050705 -0.9375 0.8125 -0.0662493 -1 0.8125 -0.0717077 - -0 0.875 -0.132499 -0.0625 0.875 -0.122413 -0.125 0.875 -0.0936907 -0.1875 0.875 -0.050705 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.050705 -0.375 0.875 0.0936907 -0.4375 0.875 0.122413 -0.5 0.875 0.132499 -0.5625 0.875 0.122413 -0.625 0.875 0.0936907 -0.6875 0.875 0.050705 -0.75 0.875 2.77556e-17 -0.8125 0.875 -0.050705 -0.875 0.875 -0.0936907 -0.9375 0.875 -0.122413 -1 0.875 -0.132499 - -0 0.9375 -0.173118 -0.0625 0.9375 -0.15994 -0.125 0.9375 -0.122413 -0.1875 0.9375 -0.0662493 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.0662493 -0.375 0.9375 0.122413 -0.4375 0.9375 0.15994 -0.5 0.9375 0.173118 -0.5625 0.9375 0.15994 -0.625 0.9375 0.122413 -0.6875 0.9375 0.0662493 -0.75 0.9375 2.77556e-17 -0.8125 0.9375 -0.0662493 -0.875 0.9375 -0.122413 -0.9375 0.9375 -0.15994 -1 0.9375 -0.173118 - -0 1 -0.187381 -0.0625 1 -0.173118 -0.125 1 -0.132499 -0.1875 1 -0.0717077 -0.25 1 -1.38778e-17 -0.3125 1 0.0717077 -0.375 1 0.132499 -0.4375 1 0.173118 -0.5 1 0.187381 -0.5625 1 0.173118 -0.625 1 0.132499 -0.6875 1 0.0717077 -0.75 1 2.77556e-17 -0.8125 1 -0.0717077 -0.875 1 -0.132499 -0.9375 1 -0.173118 -1 1 -0.187381 - - -0 0 -0.218143 -0.0625 0 -0.201538 -0.125 0 -0.154251 -0.1875 0 -0.0834798 -0.25 0 -1.38778e-17 -0.3125 0 0.0834798 -0.375 0 0.154251 -0.4375 0 0.201538 -0.5 0 0.218143 -0.5625 0 0.201538 -0.625 0 0.154251 -0.6875 0 0.0834798 -0.75 0 4.16334e-17 -0.8125 0 -0.0834798 -0.875 0 -0.154251 -0.9375 0 -0.201538 -1 0 -0.218143 - -0 0.0625 -0.201538 -0.0625 0.0625 -0.186197 -0.125 0.0625 -0.142509 -0.1875 0.0625 -0.0771253 -0.25 0.0625 -1.21431e-17 -0.3125 0.0625 0.0771253 -0.375 0.0625 0.142509 -0.4375 0.0625 0.186197 -0.5 0.0625 0.201538 -0.5625 0.0625 0.186197 -0.625 0.0625 0.142509 -0.6875 0.0625 0.0771253 -0.75 0.0625 4.33681e-17 -0.8125 0.0625 -0.0771253 -0.875 0.0625 -0.142509 -0.9375 0.0625 -0.186197 -1 0.0625 -0.201538 - -0 0.125 -0.154251 -0.0625 0.125 -0.142509 -0.125 0.125 -0.109072 -0.1875 0.125 -0.0590291 -0.25 0.125 -1.04083e-17 -0.3125 0.125 0.0590291 -0.375 0.125 0.109072 -0.4375 0.125 0.142509 -0.5 0.125 0.154251 -0.5625 0.125 0.142509 -0.625 0.125 0.109072 -0.6875 0.125 0.0590291 -0.75 0.125 3.1225e-17 -0.8125 0.125 -0.0590291 -0.875 0.125 -0.109072 -0.9375 0.125 -0.142509 -1 0.125 -0.154251 - -0 0.1875 -0.0834798 -0.0625 0.1875 -0.0771253 -0.125 0.1875 -0.0590291 -0.1875 0.1875 -0.0319463 -0.25 0.1875 -5.20417e-18 -0.3125 0.1875 0.0319463 -0.375 0.1875 0.0590291 -0.4375 0.1875 0.0771253 -0.5 0.1875 0.0834798 -0.5625 0.1875 0.0771253 -0.625 0.1875 0.0590291 -0.6875 0.1875 0.0319463 -0.75 0.1875 1.56125e-17 -0.8125 0.1875 -0.0319463 -0.875 0.1875 -0.0590291 -0.9375 0.1875 -0.0771253 -1 0.1875 -0.0834798 - -0 0.25 -1.38778e-17 -0.0625 0.25 0 -0.125 0.25 -2.77556e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 6.93889e-18 -0.375 0.25 1.38778e-17 -0.4375 0.25 0 -0.5 0.25 1.38778e-17 -0.5625 0.25 2.77556e-17 -0.625 0.25 1.38778e-17 -0.6875 0.25 6.93889e-18 -0.75 0.25 3.08149e-33 -0.8125 0.25 -1.38778e-17 -0.875 0.25 -2.77556e-17 -0.9375 0.25 -1.38778e-17 -1 0.25 -1.38778e-17 - -0 0.3125 0.0834798 -0.0625 0.3125 0.0771253 -0.125 0.3125 0.0590291 -0.1875 0.3125 0.0319463 -0.25 0.3125 6.93889e-18 -0.3125 0.3125 -0.0319463 -0.375 0.3125 -0.0590291 -0.4375 0.3125 -0.0771253 -0.5 0.3125 -0.0834798 -0.5625 0.3125 -0.0771253 -0.625 0.3125 -0.0590291 -0.6875 0.3125 -0.0319463 -0.75 0.3125 -1.38778e-17 -0.8125 0.3125 0.0319463 -0.875 0.3125 0.0590291 -0.9375 0.3125 0.0771253 -1 0.3125 0.0834798 - -0 0.375 0.154251 -0.0625 0.375 0.142509 -0.125 0.375 0.109072 -0.1875 0.375 0.0590291 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.0590291 -0.375 0.375 -0.109072 -0.4375 0.375 -0.142509 -0.5 0.375 -0.154251 -0.5625 0.375 -0.142509 -0.625 0.375 -0.109072 -0.6875 0.375 -0.0590291 -0.75 0.375 -2.77556e-17 -0.8125 0.375 0.0590291 -0.875 0.375 0.109072 -0.9375 0.375 0.142509 -1 0.375 0.154251 - -0 0.4375 0.201538 -0.0625 0.4375 0.186197 -0.125 0.4375 0.142509 -0.1875 0.4375 0.0771253 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.0771253 -0.375 0.4375 -0.142509 -0.4375 0.4375 -0.186197 -0.5 0.4375 -0.201538 -0.5625 0.4375 -0.186197 -0.625 0.4375 -0.142509 -0.6875 0.4375 -0.0771253 -0.75 0.4375 -4.16334e-17 -0.8125 0.4375 0.0771253 -0.875 0.4375 0.142509 -0.9375 0.4375 0.186197 -1 0.4375 0.201538 - -0 0.5 0.218143 -0.0625 0.5 0.201538 -0.125 0.5 0.154251 -0.1875 0.5 0.0834798 -0.25 0.5 1.38778e-17 -0.3125 0.5 -0.0834798 -0.375 0.5 -0.154251 -0.4375 0.5 -0.201538 -0.5 0.5 -0.218143 -0.5625 0.5 -0.201538 -0.625 0.5 -0.154251 -0.6875 0.5 -0.0834798 -0.75 0.5 -4.16334e-17 -0.8125 0.5 0.0834798 -0.875 0.5 0.154251 -0.9375 0.5 0.201538 -1 0.5 0.218143 - -0 0.5625 0.201538 -0.0625 0.5625 0.186197 -0.125 0.5625 0.142509 -0.1875 0.5625 0.0771253 -0.25 0.5625 1.56125e-17 -0.3125 0.5625 -0.0771253 -0.375 0.5625 -0.142509 -0.4375 0.5625 -0.186197 -0.5 0.5625 -0.201538 -0.5625 0.5625 -0.186197 -0.625 0.5625 -0.142509 -0.6875 0.5625 -0.0771253 -0.75 0.5625 -3.98986e-17 -0.8125 0.5625 0.0771253 -0.875 0.5625 0.142509 -0.9375 0.5625 0.186197 -1 0.5625 0.201538 - -0 0.625 0.154251 -0.0625 0.625 0.142509 -0.125 0.625 0.109072 -0.1875 0.625 0.0590291 -0.25 0.625 1.73472e-17 -0.3125 0.625 -0.0590291 -0.375 0.625 -0.109072 -0.4375 0.625 -0.142509 -0.5 0.625 -0.154251 -0.5625 0.625 -0.142509 -0.625 0.625 -0.109072 -0.6875 0.625 -0.0590291 -0.75 0.625 -2.42861e-17 -0.8125 0.625 0.0590291 -0.875 0.625 0.109072 -0.9375 0.625 0.142509 -1 0.625 0.154251 - -0 0.6875 0.0834798 -0.0625 0.6875 0.0771253 -0.125 0.6875 0.0590291 -0.1875 0.6875 0.0319463 -0.25 0.6875 9.1073e-18 -0.3125 0.6875 -0.0319463 -0.375 0.6875 -0.0590291 -0.4375 0.6875 -0.0771253 -0.5 0.6875 -0.0834798 -0.5625 0.6875 -0.0771253 -0.625 0.6875 -0.0590291 -0.6875 0.6875 -0.0319463 -0.75 0.6875 -1.17094e-17 -0.8125 0.6875 0.0319463 -0.875 0.6875 0.0590291 -0.9375 0.6875 0.0771253 -1 0.6875 0.0834798 - -0 0.75 4.16334e-17 -0.0625 0.75 5.55112e-17 -0.125 0.75 1.38778e-17 -0.1875 0.75 2.08167e-17 -0.25 0.75 3.08149e-33 -0.3125 0.75 -1.38778e-17 -0.375 0.75 -2.77556e-17 -0.4375 0.75 -5.55112e-17 -0.5 0.75 -4.16334e-17 -0.5625 0.75 -2.77556e-17 -0.625 0.75 -2.77556e-17 -0.6875 0.75 -1.38778e-17 -0.75 0.75 -6.16298e-33 -0.8125 0.75 6.93889e-18 -0.875 0.75 1.38778e-17 -0.9375 0.75 4.16334e-17 -1 0.75 4.16334e-17 - -0 0.8125 -0.0834798 -0.0625 0.8125 -0.0771253 -0.125 0.8125 -0.0590291 -0.1875 0.8125 -0.0319463 -0.25 0.8125 -6.93889e-18 -0.3125 0.8125 0.0319463 -0.375 0.8125 0.0590291 -0.4375 0.8125 0.0771253 -0.5 0.8125 0.0834798 -0.5625 0.8125 0.0771253 -0.625 0.8125 0.0590291 -0.6875 0.8125 0.0319463 -0.75 0.8125 1.38778e-17 -0.8125 0.8125 -0.0319463 -0.875 0.8125 -0.0590291 -0.9375 0.8125 -0.0771253 -1 0.8125 -0.0834798 - -0 0.875 -0.154251 -0.0625 0.875 -0.142509 -0.125 0.875 -0.109072 -0.1875 0.875 -0.0590291 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.0590291 -0.375 0.875 0.109072 -0.4375 0.875 0.142509 -0.5 0.875 0.154251 -0.5625 0.875 0.142509 -0.625 0.875 0.109072 -0.6875 0.875 0.0590291 -0.75 0.875 2.77556e-17 -0.8125 0.875 -0.0590291 -0.875 0.875 -0.109072 -0.9375 0.875 -0.142509 -1 0.875 -0.154251 - -0 0.9375 -0.201538 -0.0625 0.9375 -0.186197 -0.125 0.9375 -0.142509 -0.1875 0.9375 -0.0771253 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.0771253 -0.375 0.9375 0.142509 -0.4375 0.9375 0.186197 -0.5 0.9375 0.201538 -0.5625 0.9375 0.186197 -0.625 0.9375 0.142509 -0.6875 0.9375 0.0771253 -0.75 0.9375 4.16334e-17 -0.8125 0.9375 -0.0771253 -0.875 0.9375 -0.142509 -0.9375 0.9375 -0.186197 -1 0.9375 -0.201538 - -0 1 -0.218143 -0.0625 1 -0.201538 -0.125 1 -0.154251 -0.1875 1 -0.0834798 -0.25 1 -1.38778e-17 -0.3125 1 0.0834798 -0.375 1 0.154251 -0.4375 1 0.201538 -0.5 1 0.218143 -0.5625 1 0.201538 -0.625 1 0.154251 -0.6875 1 0.0834798 -0.75 1 4.16334e-17 -0.8125 1 -0.0834798 -0.875 1 -0.154251 -0.9375 1 -0.201538 -1 1 -0.218143 - - -0 0 -0.24869 -0.0625 0 -0.229759 -0.125 0 -0.17585 -0.1875 0 -0.0951695 -0.25 0 -1.38778e-17 -0.3125 0 0.0951695 -0.375 0 0.17585 -0.4375 0 0.229759 -0.5 0 0.24869 -0.5625 0 0.229759 -0.625 0 0.17585 -0.6875 0 0.0951695 -0.75 0 4.16334e-17 -0.8125 0 -0.0951695 -0.875 0 -0.17585 -0.9375 0 -0.229759 -1 0 -0.24869 - -0 0.0625 -0.229759 -0.0625 0.0625 -0.21227 -0.125 0.0625 -0.162464 -0.1875 0.0625 -0.0879252 -0.25 0.0625 -1.21431e-17 -0.3125 0.0625 0.0879252 -0.375 0.0625 0.162464 -0.4375 0.0625 0.21227 -0.5 0.0625 0.229759 -0.5625 0.0625 0.21227 -0.625 0.0625 0.162464 -0.6875 0.0625 0.0879252 -0.75 0.0625 4.33681e-17 -0.8125 0.0625 -0.0879252 -0.875 0.0625 -0.162464 -0.9375 0.0625 -0.21227 -1 0.0625 -0.229759 - -0 0.125 -0.17585 -0.0625 0.125 -0.162464 -0.125 0.125 -0.124345 -0.1875 0.125 -0.067295 -0.25 0.125 -1.04083e-17 -0.3125 0.125 0.067295 -0.375 0.125 0.124345 -0.4375 0.125 0.162464 -0.5 0.125 0.17585 -0.5625 0.125 0.162464 -0.625 0.125 0.124345 -0.6875 0.125 0.067295 -0.75 0.125 3.1225e-17 -0.8125 0.125 -0.067295 -0.875 0.125 -0.124345 -0.9375 0.125 -0.162464 -1 0.125 -0.17585 - -0 0.1875 -0.0951695 -0.0625 0.1875 -0.0879252 -0.125 0.1875 -0.067295 -0.1875 0.1875 -0.0364198 -0.25 0.1875 -4.77049e-18 -0.3125 0.1875 0.0364198 -0.375 0.1875 0.067295 -0.4375 0.1875 0.0879252 -0.5 0.1875 0.0951695 -0.5625 0.1875 0.0879252 -0.625 0.1875 0.067295 -0.6875 0.1875 0.0364198 -0.75 0.1875 2.29851e-17 -0.8125 0.1875 -0.0364198 -0.875 0.1875 -0.067295 -0.9375 0.1875 -0.0879252 -1 0.1875 -0.0951695 - -0 0.25 -1.38778e-17 -0.0625 0.25 -1.38778e-17 -0.125 0.25 -1.38778e-17 -0.1875 0.25 0 -0.25 0.25 -1.54074e-33 -0.3125 0.25 0 -0.375 0.25 1.38778e-17 -0.4375 0.25 0 -0.5 0.25 1.38778e-17 -0.5625 0.25 0 -0.625 0.25 2.77556e-17 -0.6875 0.25 6.93889e-18 -0.75 0.25 3.08149e-33 -0.8125 0.25 -1.38778e-17 -0.875 0.25 -2.77556e-17 -0.9375 0.25 -1.38778e-17 -1 0.25 -1.38778e-17 - -0 0.3125 0.0951695 -0.0625 0.3125 0.0879252 -0.125 0.3125 0.067295 -0.1875 0.3125 0.0364198 -0.25 0.3125 6.93889e-18 -0.3125 0.3125 -0.0364198 -0.375 0.3125 -0.067295 -0.4375 0.3125 -0.0879252 -0.5 0.3125 -0.0951695 -0.5625 0.3125 -0.0879252 -0.625 0.3125 -0.067295 -0.6875 0.3125 -0.0364198 -0.75 0.3125 -2.08167e-17 -0.8125 0.3125 0.0364198 -0.875 0.3125 0.067295 -0.9375 0.3125 0.0879252 -1 0.3125 0.0951695 - -0 0.375 0.17585 -0.0625 0.375 0.162464 -0.125 0.375 0.124345 -0.1875 0.375 0.067295 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.067295 -0.375 0.375 -0.124345 -0.4375 0.375 -0.162464 -0.5 0.375 -0.17585 -0.5625 0.375 -0.162464 -0.625 0.375 -0.124345 -0.6875 0.375 -0.067295 -0.75 0.375 -2.77556e-17 -0.8125 0.375 0.067295 -0.875 0.375 0.124345 -0.9375 0.375 0.162464 -1 0.375 0.17585 - -0 0.4375 0.229759 -0.0625 0.4375 0.21227 -0.125 0.4375 0.162464 -0.1875 0.4375 0.0879252 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.0879252 -0.375 0.4375 -0.162464 -0.4375 0.4375 -0.21227 -0.5 0.4375 -0.229759 -0.5625 0.4375 -0.21227 -0.625 0.4375 -0.162464 -0.6875 0.4375 -0.0879252 -0.75 0.4375 -4.16334e-17 -0.8125 0.4375 0.0879252 -0.875 0.4375 0.162464 -0.9375 0.4375 0.21227 -1 0.4375 0.229759 - -0 0.5 0.24869 -0.0625 0.5 0.229759 -0.125 0.5 0.17585 -0.1875 0.5 0.0951695 -0.25 0.5 1.38778e-17 -0.3125 0.5 -0.0951695 -0.375 0.5 -0.17585 -0.4375 0.5 -0.229759 -0.5 0.5 -0.24869 -0.5625 0.5 -0.229759 -0.625 0.5 -0.17585 -0.6875 0.5 -0.0951695 -0.75 0.5 -4.16334e-17 -0.8125 0.5 0.0951695 -0.875 0.5 0.17585 -0.9375 0.5 0.229759 -1 0.5 0.24869 - -0 0.5625 0.229759 -0.0625 0.5625 0.21227 -0.125 0.5625 0.162464 -0.1875 0.5625 0.0879252 -0.25 0.5625 1.56125e-17 -0.3125 0.5625 -0.0879252 -0.375 0.5625 -0.162464 -0.4375 0.5625 -0.21227 -0.5 0.5625 -0.229759 -0.5625 0.5625 -0.21227 -0.625 0.5625 -0.162464 -0.6875 0.5625 -0.0879252 -0.75 0.5625 -3.98986e-17 -0.8125 0.5625 0.0879252 -0.875 0.5625 0.162464 -0.9375 0.5625 0.21227 -1 0.5625 0.229759 - -0 0.625 0.17585 -0.0625 0.625 0.162464 -0.125 0.625 0.124345 -0.1875 0.625 0.067295 -0.25 0.625 1.73472e-17 -0.3125 0.625 -0.067295 -0.375 0.625 -0.124345 -0.4375 0.625 -0.162464 -0.5 0.625 -0.17585 -0.5625 0.625 -0.162464 -0.625 0.625 -0.124345 -0.6875 0.625 -0.067295 -0.75 0.625 -2.42861e-17 -0.8125 0.625 0.067295 -0.875 0.625 0.124345 -0.9375 0.625 0.162464 -1 0.625 0.17585 - -0 0.6875 0.0951695 -0.0625 0.6875 0.0879252 -0.125 0.6875 0.067295 -0.1875 0.6875 0.0364198 -0.25 0.6875 8.67362e-18 -0.3125 0.6875 -0.0364198 -0.375 0.6875 -0.067295 -0.4375 0.6875 -0.0879252 -0.5 0.6875 -0.0951695 -0.5625 0.6875 -0.0879252 -0.625 0.6875 -0.067295 -0.6875 0.6875 -0.0364198 -0.75 0.6875 -1.9082e-17 -0.8125 0.6875 0.0364198 -0.875 0.6875 0.067295 -0.9375 0.6875 0.0879252 -1 0.6875 0.0951695 - -0 0.75 4.16334e-17 -0.0625 0.75 4.16334e-17 -0.125 0.75 2.77556e-17 -0.1875 0.75 2.08167e-17 -0.25 0.75 3.08149e-33 -0.3125 0.75 -2.08167e-17 -0.375 0.75 -2.77556e-17 -0.4375 0.75 -5.55112e-17 -0.5 0.75 -4.16334e-17 -0.5625 0.75 -5.55112e-17 -0.625 0.75 -1.38778e-17 -0.6875 0.75 -1.38778e-17 -0.75 0.75 -9.24446e-33 -0.8125 0.75 6.93889e-18 -0.875 0.75 1.38778e-17 -0.9375 0.75 4.16334e-17 -1 0.75 4.16334e-17 - -0 0.8125 -0.0951695 -0.0625 0.8125 -0.0879252 -0.125 0.8125 -0.067295 -0.1875 0.8125 -0.0364198 -0.25 0.8125 -6.93889e-18 -0.3125 0.8125 0.0364198 -0.375 0.8125 0.067295 -0.4375 0.8125 0.0879252 -0.5 0.8125 0.0951695 -0.5625 0.8125 0.0879252 -0.625 0.8125 0.067295 -0.6875 0.8125 0.0364198 -0.75 0.8125 2.08167e-17 -0.8125 0.8125 -0.0364198 -0.875 0.8125 -0.067295 -0.9375 0.8125 -0.0879252 -1 0.8125 -0.0951695 - -0 0.875 -0.17585 -0.0625 0.875 -0.162464 -0.125 0.875 -0.124345 -0.1875 0.875 -0.067295 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.067295 -0.375 0.875 0.124345 -0.4375 0.875 0.162464 -0.5 0.875 0.17585 -0.5625 0.875 0.162464 -0.625 0.875 0.124345 -0.6875 0.875 0.067295 -0.75 0.875 2.77556e-17 -0.8125 0.875 -0.067295 -0.875 0.875 -0.124345 -0.9375 0.875 -0.162464 -1 0.875 -0.17585 - -0 0.9375 -0.229759 -0.0625 0.9375 -0.21227 -0.125 0.9375 -0.162464 -0.1875 0.9375 -0.0879252 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.0879252 -0.375 0.9375 0.162464 -0.4375 0.9375 0.21227 -0.5 0.9375 0.229759 -0.5625 0.9375 0.21227 -0.625 0.9375 0.162464 -0.6875 0.9375 0.0879252 -0.75 0.9375 4.16334e-17 -0.8125 0.9375 -0.0879252 -0.875 0.9375 -0.162464 -0.9375 0.9375 -0.21227 -1 0.9375 -0.229759 - -0 1 -0.24869 -0.0625 1 -0.229759 -0.125 1 -0.17585 -0.1875 1 -0.0951695 -0.25 1 -1.38778e-17 -0.3125 1 0.0951695 -0.375 1 0.17585 -0.4375 1 0.229759 -0.5 1 0.24869 -0.5625 1 0.229759 -0.625 1 0.17585 -0.6875 1 0.0951695 -0.75 1 4.16334e-17 -0.8125 1 -0.0951695 -0.875 1 -0.17585 -0.9375 1 -0.229759 -1 1 -0.24869 - - -0 0 -0.278991 -0.0625 0 -0.257754 -0.125 0 -0.197277 -0.1875 0 -0.106765 -0.25 0 -2.77556e-17 -0.3125 0 0.106765 -0.375 0 0.197277 -0.4375 0 0.257754 -0.5 0 0.278991 -0.5625 0 0.257754 -0.625 0 0.197277 -0.6875 0 0.106765 -0.75 0 5.55112e-17 -0.8125 0 -0.106765 -0.875 0 -0.197277 -0.9375 0 -0.257754 -1 0 -0.278991 - -0 0.0625 -0.257754 -0.0625 0.0625 -0.238134 -0.125 0.0625 -0.18226 -0.1875 0.0625 -0.0986383 -0.25 0.0625 -2.60209e-17 -0.3125 0.0625 0.0986383 -0.375 0.0625 0.18226 -0.4375 0.0625 0.238134 -0.5 0.0625 0.257754 -0.5625 0.0625 0.238134 -0.625 0.0625 0.18226 -0.6875 0.0625 0.0986383 -0.75 0.0625 5.72459e-17 -0.8125 0.0625 -0.0986383 -0.875 0.0625 -0.18226 -0.9375 0.0625 -0.238134 -1 0.0625 -0.257754 - -0 0.125 -0.197277 -0.0625 0.125 -0.18226 -0.125 0.125 -0.139496 -0.1875 0.125 -0.0754944 -0.25 0.125 -1.04083e-17 -0.3125 0.125 0.0754944 -0.375 0.125 0.139496 -0.4375 0.125 0.18226 -0.5 0.125 0.197277 -0.5625 0.125 0.18226 -0.625 0.125 0.139496 -0.6875 0.125 0.0754944 -0.75 0.125 4.51028e-17 -0.8125 0.125 -0.0754944 -0.875 0.125 -0.139496 -0.9375 0.125 -0.18226 -1 0.125 -0.197277 - -0 0.1875 -0.106765 -0.0625 0.1875 -0.0986383 -0.125 0.1875 -0.0754944 -0.1875 0.1875 -0.0408573 -0.25 0.1875 -4.33681e-18 -0.3125 0.1875 0.0408573 -0.375 0.1875 0.0754944 -0.4375 0.1875 0.0986383 -0.5 0.1875 0.106765 -0.5625 0.1875 0.0986383 -0.625 0.1875 0.0754944 -0.6875 0.1875 0.0408573 -0.75 0.1875 2.34188e-17 -0.8125 0.1875 -0.0408573 -0.875 0.1875 -0.0754944 -0.9375 0.1875 -0.0986383 -1 0.1875 -0.106765 - -0 0.25 -2.77556e-17 -0.0625 0.25 -2.77556e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -6.93889e-18 -0.25 0.25 0 -0.3125 0.25 1.38778e-17 -0.375 0.25 2.77556e-17 -0.4375 0.25 0 -0.5 0.25 2.77556e-17 -0.5625 0.25 2.77556e-17 -0.625 0.25 1.38778e-17 -0.6875 0.25 1.38778e-17 -0.75 0.25 0 -0.8125 0.25 -6.93889e-18 -0.875 0.25 0 -0.9375 0.25 -2.77556e-17 -1 0.25 -2.77556e-17 - -0 0.3125 0.106765 -0.0625 0.3125 0.0986383 -0.125 0.3125 0.0754944 -0.1875 0.3125 0.0408573 -0.25 0.3125 6.93889e-18 -0.3125 0.3125 -0.0408573 -0.375 0.3125 -0.0754944 -0.4375 0.3125 -0.0986383 -0.5 0.3125 -0.106765 -0.5625 0.3125 -0.0986383 -0.625 0.3125 -0.0754944 -0.6875 0.3125 -0.0408573 -0.75 0.3125 -2.08167e-17 -0.8125 0.3125 0.0408573 -0.875 0.3125 0.0754944 -0.9375 0.3125 0.0986383 -1 0.3125 0.106765 - -0 0.375 0.197277 -0.0625 0.375 0.18226 -0.125 0.375 0.139496 -0.1875 0.375 0.0754944 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.0754944 -0.375 0.375 -0.139496 -0.4375 0.375 -0.18226 -0.5 0.375 -0.197277 -0.5625 0.375 -0.18226 -0.625 0.375 -0.139496 -0.6875 0.375 -0.0754944 -0.75 0.375 -4.16334e-17 -0.8125 0.375 0.0754944 -0.875 0.375 0.139496 -0.9375 0.375 0.18226 -1 0.375 0.197277 - -0 0.4375 0.257754 -0.0625 0.4375 0.238134 -0.125 0.4375 0.18226 -0.1875 0.4375 0.0986383 -0.25 0.4375 2.77556e-17 -0.3125 0.4375 -0.0986383 -0.375 0.4375 -0.18226 -0.4375 0.4375 -0.238134 -0.5 0.4375 -0.257754 -0.5625 0.4375 -0.238134 -0.625 0.4375 -0.18226 -0.6875 0.4375 -0.0986383 -0.75 0.4375 -5.55112e-17 -0.8125 0.4375 0.0986383 -0.875 0.4375 0.18226 -0.9375 0.4375 0.238134 -1 0.4375 0.257754 - -0 0.5 0.278991 -0.0625 0.5 0.257754 -0.125 0.5 0.197277 -0.1875 0.5 0.106765 -0.25 0.5 2.77556e-17 -0.3125 0.5 -0.106765 -0.375 0.5 -0.197277 -0.4375 0.5 -0.257754 -0.5 0.5 -0.278991 -0.5625 0.5 -0.257754 -0.625 0.5 -0.197277 -0.6875 0.5 -0.106765 -0.75 0.5 -5.55112e-17 -0.8125 0.5 0.106765 -0.875 0.5 0.197277 -0.9375 0.5 0.257754 -1 0.5 0.278991 - -0 0.5625 0.257754 -0.0625 0.5625 0.238134 -0.125 0.5625 0.18226 -0.1875 0.5625 0.0986383 -0.25 0.5625 2.77556e-17 -0.3125 0.5625 -0.0986383 -0.375 0.5625 -0.18226 -0.4375 0.5625 -0.238134 -0.5 0.5625 -0.257754 -0.5625 0.5625 -0.238134 -0.625 0.5625 -0.18226 -0.6875 0.5625 -0.0986383 -0.75 0.5625 -5.55112e-17 -0.8125 0.5625 0.0986383 -0.875 0.5625 0.18226 -0.9375 0.5625 0.238134 -1 0.5625 0.257754 - -0 0.625 0.197277 -0.0625 0.625 0.18226 -0.125 0.625 0.139496 -0.1875 0.625 0.0754944 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.0754944 -0.375 0.625 -0.139496 -0.4375 0.625 -0.18226 -0.5 0.625 -0.197277 -0.5625 0.625 -0.18226 -0.625 0.625 -0.139496 -0.6875 0.625 -0.0754944 -0.75 0.625 -4.16334e-17 -0.8125 0.625 0.0754944 -0.875 0.625 0.139496 -0.9375 0.625 0.18226 -1 0.625 0.197277 - -0 0.6875 0.106765 -0.0625 0.6875 0.0986383 -0.125 0.6875 0.0754944 -0.1875 0.6875 0.0408573 -0.25 0.6875 7.80626e-18 -0.3125 0.6875 -0.0408573 -0.375 0.6875 -0.0754944 -0.4375 0.6875 -0.0986383 -0.5 0.6875 -0.106765 -0.5625 0.6875 -0.0986383 -0.625 0.6875 -0.0754944 -0.6875 0.6875 -0.0408573 -0.75 0.6875 -1.99493e-17 -0.8125 0.6875 0.0408573 -0.875 0.6875 0.0754944 -0.9375 0.6875 0.0986383 -1 0.6875 0.106765 - -0 0.75 5.55112e-17 -0.0625 0.75 5.55112e-17 -0.125 0.75 2.77556e-17 -0.1875 0.75 2.08167e-17 -0.25 0.75 0 -0.3125 0.75 -1.38778e-17 -0.375 0.75 -2.77556e-17 -0.4375 0.75 -8.32667e-17 -0.5 0.75 -5.55112e-17 -0.5625 0.75 -5.55112e-17 -0.625 0.75 -4.16334e-17 -0.6875 0.75 -1.38778e-17 -0.75 0.75 -1.2326e-32 -0.8125 0.75 2.08167e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 5.55112e-17 -1 0.75 5.55112e-17 - -0 0.8125 -0.106765 -0.0625 0.8125 -0.0986383 -0.125 0.8125 -0.0754944 -0.1875 0.8125 -0.0408573 -0.25 0.8125 -6.93889e-18 -0.3125 0.8125 0.0408573 -0.375 0.8125 0.0754944 -0.4375 0.8125 0.0986383 -0.5 0.8125 0.106765 -0.5625 0.8125 0.0986383 -0.625 0.8125 0.0754944 -0.6875 0.8125 0.0408573 -0.75 0.8125 2.08167e-17 -0.8125 0.8125 -0.0408573 -0.875 0.8125 -0.0754944 -0.9375 0.8125 -0.0986383 -1 0.8125 -0.106765 - -0 0.875 -0.197277 -0.0625 0.875 -0.18226 -0.125 0.875 -0.139496 -0.1875 0.875 -0.0754944 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.0754944 -0.375 0.875 0.139496 -0.4375 0.875 0.18226 -0.5 0.875 0.197277 -0.5625 0.875 0.18226 -0.625 0.875 0.139496 -0.6875 0.875 0.0754944 -0.75 0.875 4.16334e-17 -0.8125 0.875 -0.0754944 -0.875 0.875 -0.139496 -0.9375 0.875 -0.18226 -1 0.875 -0.197277 - -0 0.9375 -0.257754 -0.0625 0.9375 -0.238134 -0.125 0.9375 -0.18226 -0.1875 0.9375 -0.0986383 -0.25 0.9375 -2.77556e-17 -0.3125 0.9375 0.0986383 -0.375 0.9375 0.18226 -0.4375 0.9375 0.238134 -0.5 0.9375 0.257754 -0.5625 0.9375 0.238134 -0.625 0.9375 0.18226 -0.6875 0.9375 0.0986383 -0.75 0.9375 5.55112e-17 -0.8125 0.9375 -0.0986383 -0.875 0.9375 -0.18226 -0.9375 0.9375 -0.238134 -1 0.9375 -0.257754 - -0 1 -0.278991 -0.0625 1 -0.257754 -0.125 1 -0.197277 -0.1875 1 -0.106765 -0.25 1 -2.77556e-17 -0.3125 1 0.106765 -0.375 1 0.197277 -0.4375 1 0.257754 -0.5 1 0.278991 -0.5625 1 0.257754 -0.625 1 0.197277 -0.6875 1 0.106765 -0.75 1 5.55112e-17 -0.8125 1 -0.106765 -0.875 1 -0.197277 -0.9375 1 -0.257754 -1 1 -0.278991 - - -0 0 -0.309017 -0.0625 0 -0.285494 -0.125 0 -0.218508 -0.1875 0 -0.118256 -0.25 0 -2.77556e-17 -0.3125 0 0.118256 -0.375 0 0.218508 -0.4375 0 0.285494 -0.5 0 0.309017 -0.5625 0 0.285494 -0.625 0 0.218508 -0.6875 0 0.118256 -0.75 0 5.55112e-17 -0.8125 0 -0.118256 -0.875 0 -0.218508 -0.9375 0 -0.285494 -1 0 -0.309017 - -0 0.0625 -0.285494 -0.0625 0.0625 -0.263763 -0.125 0.0625 -0.201875 -0.1875 0.0625 -0.109254 -0.25 0.0625 -3.1225e-17 -0.3125 0.0625 0.109254 -0.375 0.0625 0.201875 -0.4375 0.0625 0.263763 -0.5 0.0625 0.285494 -0.5625 0.0625 0.263763 -0.625 0.0625 0.201875 -0.6875 0.0625 0.109254 -0.75 0.0625 5.20417e-17 -0.8125 0.0625 -0.109254 -0.875 0.0625 -0.201875 -0.9375 0.0625 -0.263763 -1 0.0625 -0.285494 - -0 0.125 -0.218508 -0.0625 0.125 -0.201875 -0.125 0.125 -0.154508 -0.1875 0.125 -0.0836194 -0.25 0.125 -2.08167e-17 -0.3125 0.125 0.0836194 -0.375 0.125 0.154508 -0.4375 0.125 0.201875 -0.5 0.125 0.218508 -0.5625 0.125 0.201875 -0.625 0.125 0.154508 -0.6875 0.125 0.0836194 -0.75 0.125 3.46945e-17 -0.8125 0.125 -0.0836194 -0.875 0.125 -0.154508 -0.9375 0.125 -0.201875 -1 0.125 -0.218508 - -0 0.1875 -0.118256 -0.0625 0.1875 -0.109254 -0.125 0.1875 -0.0836194 -0.1875 0.1875 -0.0452545 -0.25 0.1875 -9.54098e-18 -0.3125 0.1875 0.0452545 -0.375 0.1875 0.0836194 -0.4375 0.1875 0.109254 -0.5 0.1875 0.118256 -0.5625 0.1875 0.109254 -0.625 0.1875 0.0836194 -0.6875 0.1875 0.0452545 -0.75 0.1875 1.82146e-17 -0.8125 0.1875 -0.0452545 -0.875 0.1875 -0.0836194 -0.9375 0.1875 -0.109254 -1 0.1875 -0.118256 - -0 0.25 -2.77556e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -1.38778e-17 -0.25 0.25 0 -0.3125 0.25 6.93889e-18 -0.375 0.25 4.16334e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 2.77556e-17 -0.5625 0.25 2.77556e-17 -0.625 0.25 2.77556e-17 -0.6875 0.25 6.93889e-18 -0.75 0.25 0 -0.8125 0.25 -2.08167e-17 -0.875 0.25 0 -0.9375 0.25 -2.77556e-17 -1 0.25 -2.77556e-17 - -0 0.3125 0.118256 -0.0625 0.3125 0.109254 -0.125 0.3125 0.0836194 -0.1875 0.3125 0.0452545 -0.25 0.3125 6.93889e-18 -0.3125 0.3125 -0.0452545 -0.375 0.3125 -0.0836194 -0.4375 0.3125 -0.109254 -0.5 0.3125 -0.118256 -0.5625 0.3125 -0.109254 -0.625 0.3125 -0.0836194 -0.6875 0.3125 -0.0452545 -0.75 0.3125 -2.08167e-17 -0.8125 0.3125 0.0452545 -0.875 0.3125 0.0836194 -0.9375 0.3125 0.109254 -1 0.3125 0.118256 - -0 0.375 0.218508 -0.0625 0.375 0.201875 -0.125 0.375 0.154508 -0.1875 0.375 0.0836194 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.0836194 -0.375 0.375 -0.154508 -0.4375 0.375 -0.201875 -0.5 0.375 -0.218508 -0.5625 0.375 -0.201875 -0.625 0.375 -0.154508 -0.6875 0.375 -0.0836194 -0.75 0.375 -4.16334e-17 -0.8125 0.375 0.0836194 -0.875 0.375 0.154508 -0.9375 0.375 0.201875 -1 0.375 0.218508 - -0 0.4375 0.285494 -0.0625 0.4375 0.263763 -0.125 0.4375 0.201875 -0.1875 0.4375 0.109254 -0.25 0.4375 2.77556e-17 -0.3125 0.4375 -0.109254 -0.375 0.4375 -0.201875 -0.4375 0.4375 -0.263763 -0.5 0.4375 -0.285494 -0.5625 0.4375 -0.263763 -0.625 0.4375 -0.201875 -0.6875 0.4375 -0.109254 -0.75 0.4375 -5.55112e-17 -0.8125 0.4375 0.109254 -0.875 0.4375 0.201875 -0.9375 0.4375 0.263763 -1 0.4375 0.285494 - -0 0.5 0.309017 -0.0625 0.5 0.285494 -0.125 0.5 0.218508 -0.1875 0.5 0.118256 -0.25 0.5 2.77556e-17 -0.3125 0.5 -0.118256 -0.375 0.5 -0.218508 -0.4375 0.5 -0.285494 -0.5 0.5 -0.309017 -0.5625 0.5 -0.285494 -0.625 0.5 -0.218508 -0.6875 0.5 -0.118256 -0.75 0.5 -5.55112e-17 -0.8125 0.5 0.118256 -0.875 0.5 0.218508 -0.9375 0.5 0.285494 -1 0.5 0.309017 - -0 0.5625 0.285494 -0.0625 0.5625 0.263763 -0.125 0.5625 0.201875 -0.1875 0.5625 0.109254 -0.25 0.5625 2.77556e-17 -0.3125 0.5625 -0.109254 -0.375 0.5625 -0.201875 -0.4375 0.5625 -0.263763 -0.5 0.5625 -0.285494 -0.5625 0.5625 -0.263763 -0.625 0.5625 -0.201875 -0.6875 0.5625 -0.109254 -0.75 0.5625 -5.55112e-17 -0.8125 0.5625 0.109254 -0.875 0.5625 0.201875 -0.9375 0.5625 0.263763 -1 0.5625 0.285494 - -0 0.625 0.218508 -0.0625 0.625 0.201875 -0.125 0.625 0.154508 -0.1875 0.625 0.0836194 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.0836194 -0.375 0.625 -0.154508 -0.4375 0.625 -0.201875 -0.5 0.625 -0.218508 -0.5625 0.625 -0.201875 -0.625 0.625 -0.154508 -0.6875 0.625 -0.0836194 -0.75 0.625 -4.16334e-17 -0.8125 0.625 0.0836194 -0.875 0.625 0.154508 -0.9375 0.625 0.201875 -1 0.625 0.218508 - -0 0.6875 0.118256 -0.0625 0.6875 0.109254 -0.125 0.6875 0.0836194 -0.1875 0.6875 0.0452545 -0.25 0.6875 6.93889e-18 -0.3125 0.6875 -0.0452545 -0.375 0.6875 -0.0836194 -0.4375 0.6875 -0.109254 -0.5 0.6875 -0.118256 -0.5625 0.6875 -0.109254 -0.625 0.6875 -0.0836194 -0.6875 0.6875 -0.0452545 -0.75 0.6875 -2.08167e-17 -0.8125 0.6875 0.0452545 -0.875 0.6875 0.0836194 -0.9375 0.6875 0.109254 -1 0.6875 0.118256 - -0 0.75 5.55112e-17 -0.0625 0.75 2.77556e-17 -0.125 0.75 4.16334e-17 -0.1875 0.75 2.08167e-17 -0.25 0.75 6.16298e-33 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -2.77556e-17 -0.4375 0.75 -2.77556e-17 -0.5 0.75 -5.55112e-17 -0.5625 0.75 -5.55112e-17 -0.625 0.75 -4.16334e-17 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -1.2326e-32 -0.8125 0.75 1.38778e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 5.55112e-17 -1 0.75 5.55112e-17 - -0 0.8125 -0.118256 -0.0625 0.8125 -0.109254 -0.125 0.8125 -0.0836194 -0.1875 0.8125 -0.0452545 -0.25 0.8125 -6.93889e-18 -0.3125 0.8125 0.0452545 -0.375 0.8125 0.0836194 -0.4375 0.8125 0.109254 -0.5 0.8125 0.118256 -0.5625 0.8125 0.109254 -0.625 0.8125 0.0836194 -0.6875 0.8125 0.0452545 -0.75 0.8125 2.08167e-17 -0.8125 0.8125 -0.0452545 -0.875 0.8125 -0.0836194 -0.9375 0.8125 -0.109254 -1 0.8125 -0.118256 - -0 0.875 -0.218508 -0.0625 0.875 -0.201875 -0.125 0.875 -0.154508 -0.1875 0.875 -0.0836194 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.0836194 -0.375 0.875 0.154508 -0.4375 0.875 0.201875 -0.5 0.875 0.218508 -0.5625 0.875 0.201875 -0.625 0.875 0.154508 -0.6875 0.875 0.0836194 -0.75 0.875 4.16334e-17 -0.8125 0.875 -0.0836194 -0.875 0.875 -0.154508 -0.9375 0.875 -0.201875 -1 0.875 -0.218508 - -0 0.9375 -0.285494 -0.0625 0.9375 -0.263763 -0.125 0.9375 -0.201875 -0.1875 0.9375 -0.109254 -0.25 0.9375 -2.77556e-17 -0.3125 0.9375 0.109254 -0.375 0.9375 0.201875 -0.4375 0.9375 0.263763 -0.5 0.9375 0.285494 -0.5625 0.9375 0.263763 -0.625 0.9375 0.201875 -0.6875 0.9375 0.109254 -0.75 0.9375 5.55112e-17 -0.8125 0.9375 -0.109254 -0.875 0.9375 -0.201875 -0.9375 0.9375 -0.263763 -1 0.9375 -0.285494 - -0 1 -0.309017 -0.0625 1 -0.285494 -0.125 1 -0.218508 -0.1875 1 -0.118256 -0.25 1 -2.77556e-17 -0.3125 1 0.118256 -0.375 1 0.218508 -0.4375 1 0.285494 -0.5 1 0.309017 -0.5625 1 0.285494 -0.625 1 0.218508 -0.6875 1 0.118256 -0.75 1 5.55112e-17 -0.8125 1 -0.118256 -0.875 1 -0.218508 -0.9375 1 -0.285494 -1 1 -0.309017 - - -0 0 -0.338738 -0.0625 0 -0.312953 -0.125 0 -0.239524 -0.1875 0 -0.129629 -0.25 0 -2.77556e-17 -0.3125 0 0.129629 -0.375 0 0.239524 -0.4375 0 0.312953 -0.5 0 0.338738 -0.5625 0 0.312953 -0.625 0 0.239524 -0.6875 0 0.129629 -0.75 0 5.55112e-17 -0.8125 0 -0.129629 -0.875 0 -0.239524 -0.9375 0 -0.312953 -1 0 -0.338738 - -0 0.0625 -0.312953 -0.0625 0.0625 -0.289131 -0.125 0.0625 -0.221291 -0.1875 0.0625 -0.119762 -0.25 0.0625 -2.42861e-17 -0.3125 0.0625 0.119762 -0.375 0.0625 0.221291 -0.4375 0.0625 0.289131 -0.5 0.0625 0.312953 -0.5625 0.0625 0.289131 -0.625 0.0625 0.221291 -0.6875 0.0625 0.119762 -0.75 0.0625 5.89806e-17 -0.8125 0.0625 -0.119762 -0.875 0.0625 -0.221291 -0.9375 0.0625 -0.289131 -1 0.0625 -0.312953 - -0 0.125 -0.239524 -0.0625 0.125 -0.221291 -0.125 0.125 -0.169369 -0.1875 0.125 -0.0916618 -0.25 0.125 -6.93889e-18 -0.3125 0.125 0.0916618 -0.375 0.125 0.169369 -0.4375 0.125 0.221291 -0.5 0.125 0.239524 -0.5625 0.125 0.221291 -0.625 0.125 0.169369 -0.6875 0.125 0.0916618 -0.75 0.125 4.85723e-17 -0.8125 0.125 -0.0916618 -0.875 0.125 -0.169369 -0.9375 0.125 -0.221291 -1 0.125 -0.239524 - -0 0.1875 -0.129629 -0.0625 0.1875 -0.119762 -0.125 0.1875 -0.0916618 -0.1875 0.1875 -0.049607 -0.25 0.1875 -1.04083e-17 -0.3125 0.1875 0.049607 -0.375 0.1875 0.0916618 -0.4375 0.1875 0.119762 -0.5 0.1875 0.129629 -0.5625 0.1875 0.119762 -0.625 0.1875 0.0916618 -0.6875 0.1875 0.049607 -0.75 0.1875 3.1225e-17 -0.8125 0.1875 -0.049607 -0.875 0.1875 -0.0916618 -0.9375 0.1875 -0.119762 -1 0.1875 -0.129629 - -0 0.25 -2.77556e-17 -0.0625 0.25 -2.77556e-17 -0.125 0.25 -1.38778e-17 -0.1875 0.25 -1.38778e-17 -0.25 0.25 0 -0.3125 0.25 1.38778e-17 -0.375 0.25 1.38778e-17 -0.4375 0.25 0 -0.5 0.25 2.77556e-17 -0.5625 0.25 2.77556e-17 -0.625 0.25 0 -0.6875 0.25 1.38778e-17 -0.75 0.25 0 -0.8125 0.25 -1.38778e-17 -0.875 0.25 0 -0.9375 0.25 -2.77556e-17 -1 0.25 -2.77556e-17 - -0 0.3125 0.129629 -0.0625 0.3125 0.119762 -0.125 0.3125 0.0916618 -0.1875 0.3125 0.049607 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.049607 -0.375 0.3125 -0.0916618 -0.4375 0.3125 -0.119762 -0.5 0.3125 -0.129629 -0.5625 0.3125 -0.119762 -0.625 0.3125 -0.0916618 -0.6875 0.3125 -0.049607 -0.75 0.3125 -2.77556e-17 -0.8125 0.3125 0.049607 -0.875 0.3125 0.0916618 -0.9375 0.3125 0.119762 -1 0.3125 0.129629 - -0 0.375 0.239524 -0.0625 0.375 0.221291 -0.125 0.375 0.169369 -0.1875 0.375 0.0916618 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.0916618 -0.375 0.375 -0.169369 -0.4375 0.375 -0.221291 -0.5 0.375 -0.239524 -0.5625 0.375 -0.221291 -0.625 0.375 -0.169369 -0.6875 0.375 -0.0916618 -0.75 0.375 -4.16334e-17 -0.8125 0.375 0.0916618 -0.875 0.375 0.169369 -0.9375 0.375 0.221291 -1 0.375 0.239524 - -0 0.4375 0.312953 -0.0625 0.4375 0.289131 -0.125 0.4375 0.221291 -0.1875 0.4375 0.119762 -0.25 0.4375 2.77556e-17 -0.3125 0.4375 -0.119762 -0.375 0.4375 -0.221291 -0.4375 0.4375 -0.289131 -0.5 0.4375 -0.312953 -0.5625 0.4375 -0.289131 -0.625 0.4375 -0.221291 -0.6875 0.4375 -0.119762 -0.75 0.4375 -5.55112e-17 -0.8125 0.4375 0.119762 -0.875 0.4375 0.221291 -0.9375 0.4375 0.289131 -1 0.4375 0.312953 - -0 0.5 0.338738 -0.0625 0.5 0.312953 -0.125 0.5 0.239524 -0.1875 0.5 0.129629 -0.25 0.5 2.77556e-17 -0.3125 0.5 -0.129629 -0.375 0.5 -0.239524 -0.4375 0.5 -0.312953 -0.5 0.5 -0.338738 -0.5625 0.5 -0.312953 -0.625 0.5 -0.239524 -0.6875 0.5 -0.129629 -0.75 0.5 -5.55112e-17 -0.8125 0.5 0.129629 -0.875 0.5 0.239524 -0.9375 0.5 0.312953 -1 0.5 0.338738 - -0 0.5625 0.312953 -0.0625 0.5625 0.289131 -0.125 0.5625 0.221291 -0.1875 0.5625 0.119762 -0.25 0.5625 2.77556e-17 -0.3125 0.5625 -0.119762 -0.375 0.5625 -0.221291 -0.4375 0.5625 -0.289131 -0.5 0.5625 -0.312953 -0.5625 0.5625 -0.289131 -0.625 0.5625 -0.221291 -0.6875 0.5625 -0.119762 -0.75 0.5625 -5.55112e-17 -0.8125 0.5625 0.119762 -0.875 0.5625 0.221291 -0.9375 0.5625 0.289131 -1 0.5625 0.312953 - -0 0.625 0.239524 -0.0625 0.625 0.221291 -0.125 0.625 0.169369 -0.1875 0.625 0.0916618 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.0916618 -0.375 0.625 -0.169369 -0.4375 0.625 -0.221291 -0.5 0.625 -0.239524 -0.5625 0.625 -0.221291 -0.625 0.625 -0.169369 -0.6875 0.625 -0.0916618 -0.75 0.625 -4.16334e-17 -0.8125 0.625 0.0916618 -0.875 0.625 0.169369 -0.9375 0.625 0.221291 -1 0.625 0.239524 - -0 0.6875 0.129629 -0.0625 0.6875 0.119762 -0.125 0.6875 0.0916618 -0.1875 0.6875 0.049607 -0.25 0.6875 1.38778e-17 -0.3125 0.6875 -0.049607 -0.375 0.6875 -0.0916618 -0.4375 0.6875 -0.119762 -0.5 0.6875 -0.129629 -0.5625 0.6875 -0.119762 -0.625 0.6875 -0.0916618 -0.6875 0.6875 -0.049607 -0.75 0.6875 -2.77556e-17 -0.8125 0.6875 0.049607 -0.875 0.6875 0.0916618 -0.9375 0.6875 0.119762 -1 0.6875 0.129629 - -0 0.75 5.55112e-17 -0.0625 0.75 5.55112e-17 -0.125 0.75 5.55112e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 6.16298e-33 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -8.32667e-17 -0.5 0.75 -5.55112e-17 -0.5625 0.75 -5.55112e-17 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -1.2326e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 5.55112e-17 -1 0.75 5.55112e-17 - -0 0.8125 -0.129629 -0.0625 0.8125 -0.119762 -0.125 0.8125 -0.0916618 -0.1875 0.8125 -0.049607 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.049607 -0.375 0.8125 0.0916618 -0.4375 0.8125 0.119762 -0.5 0.8125 0.129629 -0.5625 0.8125 0.119762 -0.625 0.8125 0.0916618 -0.6875 0.8125 0.049607 -0.75 0.8125 2.77556e-17 -0.8125 0.8125 -0.049607 -0.875 0.8125 -0.0916618 -0.9375 0.8125 -0.119762 -1 0.8125 -0.129629 - -0 0.875 -0.239524 -0.0625 0.875 -0.221291 -0.125 0.875 -0.169369 -0.1875 0.875 -0.0916618 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.0916618 -0.375 0.875 0.169369 -0.4375 0.875 0.221291 -0.5 0.875 0.239524 -0.5625 0.875 0.221291 -0.625 0.875 0.169369 -0.6875 0.875 0.0916618 -0.75 0.875 4.16334e-17 -0.8125 0.875 -0.0916618 -0.875 0.875 -0.169369 -0.9375 0.875 -0.221291 -1 0.875 -0.239524 - -0 0.9375 -0.312953 -0.0625 0.9375 -0.289131 -0.125 0.9375 -0.221291 -0.1875 0.9375 -0.119762 -0.25 0.9375 -2.77556e-17 -0.3125 0.9375 0.119762 -0.375 0.9375 0.221291 -0.4375 0.9375 0.289131 -0.5 0.9375 0.312953 -0.5625 0.9375 0.289131 -0.625 0.9375 0.221291 -0.6875 0.9375 0.119762 -0.75 0.9375 5.55112e-17 -0.8125 0.9375 -0.119762 -0.875 0.9375 -0.221291 -0.9375 0.9375 -0.289131 -1 0.9375 -0.312953 - -0 1 -0.338738 -0.0625 1 -0.312953 -0.125 1 -0.239524 -0.1875 1 -0.129629 -0.25 1 -2.77556e-17 -0.3125 1 0.129629 -0.375 1 0.239524 -0.4375 1 0.312953 -0.5 1 0.338738 -0.5625 1 0.312953 -0.625 1 0.239524 -0.6875 1 0.129629 -0.75 1 5.55112e-17 -0.8125 1 -0.129629 -0.875 1 -0.239524 -0.9375 1 -0.312953 -1 1 -0.338738 - - -0 0 -0.368125 -0.0625 0 -0.340103 -0.125 0 -0.260303 -0.1875 0 -0.140875 -0.25 0 -5.55112e-17 -0.3125 0 0.140875 -0.375 0 0.260303 -0.4375 0 0.340103 -0.5 0 0.368125 -0.5625 0 0.340103 -0.625 0 0.260303 -0.6875 0 0.140875 -0.75 0 2.77556e-17 -0.8125 0 -0.140875 -0.875 0 -0.260303 -0.9375 0 -0.340103 -1 0 -0.368125 - -0 0.0625 -0.340103 -0.0625 0.0625 -0.314214 -0.125 0.0625 -0.240489 -0.1875 0.0625 -0.130152 -0.25 0.0625 -5.20417e-17 -0.3125 0.0625 0.130152 -0.375 0.0625 0.240489 -0.4375 0.0625 0.314214 -0.5 0.0625 0.340103 -0.5625 0.0625 0.314214 -0.625 0.0625 0.240489 -0.6875 0.0625 0.130152 -0.75 0.0625 3.1225e-17 -0.8125 0.0625 -0.130152 -0.875 0.0625 -0.240489 -0.9375 0.0625 -0.314214 -1 0.0625 -0.340103 - -0 0.125 -0.260303 -0.0625 0.125 -0.240489 -0.125 0.125 -0.184062 -0.1875 0.125 -0.0996138 -0.25 0.125 -4.85723e-17 -0.3125 0.125 0.0996138 -0.375 0.125 0.184062 -0.4375 0.125 0.240489 -0.5 0.125 0.260303 -0.5625 0.125 0.240489 -0.625 0.125 0.184062 -0.6875 0.125 0.0996138 -0.75 0.125 3.46945e-17 -0.8125 0.125 -0.0996138 -0.875 0.125 -0.184062 -0.9375 0.125 -0.240489 -1 0.125 -0.260303 - -0 0.1875 -0.140875 -0.0625 0.1875 -0.130152 -0.125 0.1875 -0.0996138 -0.1875 0.1875 -0.0539106 -0.25 0.1875 -2.42861e-17 -0.3125 0.1875 0.0539106 -0.375 0.1875 0.0996138 -0.4375 0.1875 0.130152 -0.5 0.1875 0.140875 -0.5625 0.1875 0.130152 -0.625 0.1875 0.0996138 -0.6875 0.1875 0.0539106 -0.75 0.1875 1.73472e-17 -0.8125 0.1875 -0.0539106 -0.875 0.1875 -0.0996138 -0.9375 0.1875 -0.130152 -1 0.1875 -0.140875 - -0 0.25 -5.55112e-17 -0.0625 0.25 -2.77556e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 2.77556e-17 -0.4375 0.25 0 -0.5 0.25 0 -0.5625 0.25 2.77556e-17 -0.625 0.25 0 -0.6875 0.25 1.38778e-17 -0.75 0.25 6.16298e-33 -0.8125 0.25 -1.38778e-17 -0.875 0.25 0 -0.9375 0.25 0 -1 0.25 -5.55112e-17 - -0 0.3125 0.140875 -0.0625 0.3125 0.130152 -0.125 0.3125 0.0996138 -0.1875 0.3125 0.0539106 -0.25 0.3125 2.08167e-17 -0.3125 0.3125 -0.0539106 -0.375 0.3125 -0.0996138 -0.4375 0.3125 -0.130152 -0.5 0.3125 -0.140875 -0.5625 0.3125 -0.130152 -0.625 0.3125 -0.0996138 -0.6875 0.3125 -0.0539106 -0.75 0.3125 -2.08167e-17 -0.8125 0.3125 0.0539106 -0.875 0.3125 0.0996138 -0.9375 0.3125 0.130152 -1 0.3125 0.140875 - -0 0.375 0.260303 -0.0625 0.375 0.240489 -0.125 0.375 0.184062 -0.1875 0.375 0.0996138 -0.25 0.375 4.16334e-17 -0.3125 0.375 -0.0996138 -0.375 0.375 -0.184062 -0.4375 0.375 -0.240489 -0.5 0.375 -0.260303 -0.5625 0.375 -0.240489 -0.625 0.375 -0.184062 -0.6875 0.375 -0.0996138 -0.75 0.375 -4.16334e-17 -0.8125 0.375 0.0996138 -0.875 0.375 0.184062 -0.9375 0.375 0.240489 -1 0.375 0.260303 - -0 0.4375 0.340103 -0.0625 0.4375 0.314214 -0.125 0.4375 0.240489 -0.1875 0.4375 0.130152 -0.25 0.4375 4.85723e-17 -0.3125 0.4375 -0.130152 -0.375 0.4375 -0.240489 -0.4375 0.4375 -0.314214 -0.5 0.4375 -0.340103 -0.5625 0.4375 -0.314214 -0.625 0.4375 -0.240489 -0.6875 0.4375 -0.130152 -0.75 0.4375 -3.46945e-17 -0.8125 0.4375 0.130152 -0.875 0.4375 0.240489 -0.9375 0.4375 0.314214 -1 0.4375 0.340103 - -0 0.5 0.368125 -0.0625 0.5 0.340103 -0.125 0.5 0.260303 -0.1875 0.5 0.140875 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.140875 -0.375 0.5 -0.260303 -0.4375 0.5 -0.340103 -0.5 0.5 -0.368125 -0.5625 0.5 -0.340103 -0.625 0.5 -0.260303 -0.6875 0.5 -0.140875 -0.75 0.5 -2.77556e-17 -0.8125 0.5 0.140875 -0.875 0.5 0.260303 -0.9375 0.5 0.340103 -1 0.5 0.368125 - -0 0.5625 0.340103 -0.0625 0.5625 0.314214 -0.125 0.5625 0.240489 -0.1875 0.5625 0.130152 -0.25 0.5625 4.85723e-17 -0.3125 0.5625 -0.130152 -0.375 0.5625 -0.240489 -0.4375 0.5625 -0.314214 -0.5 0.5625 -0.340103 -0.5625 0.5625 -0.314214 -0.625 0.5625 -0.240489 -0.6875 0.5625 -0.130152 -0.75 0.5625 -3.46945e-17 -0.8125 0.5625 0.130152 -0.875 0.5625 0.240489 -0.9375 0.5625 0.314214 -1 0.5625 0.340103 - -0 0.625 0.260303 -0.0625 0.625 0.240489 -0.125 0.625 0.184062 -0.1875 0.625 0.0996138 -0.25 0.625 4.16334e-17 -0.3125 0.625 -0.0996138 -0.375 0.625 -0.184062 -0.4375 0.625 -0.240489 -0.5 0.625 -0.260303 -0.5625 0.625 -0.240489 -0.625 0.625 -0.184062 -0.6875 0.625 -0.0996138 -0.75 0.625 -4.16334e-17 -0.8125 0.625 0.0996138 -0.875 0.625 0.184062 -0.9375 0.625 0.240489 -1 0.625 0.260303 - -0 0.6875 0.140875 -0.0625 0.6875 0.130152 -0.125 0.6875 0.0996138 -0.1875 0.6875 0.0539106 -0.25 0.6875 2.1684e-17 -0.3125 0.6875 -0.0539106 -0.375 0.6875 -0.0996138 -0.4375 0.6875 -0.130152 -0.5 0.6875 -0.140875 -0.5625 0.6875 -0.130152 -0.625 0.6875 -0.0996138 -0.6875 0.6875 -0.0539106 -0.75 0.6875 -1.99493e-17 -0.8125 0.6875 0.0539106 -0.875 0.6875 0.0996138 -0.9375 0.6875 0.130152 -1 0.6875 0.140875 - -0 0.75 2.77556e-17 -0.0625 0.75 5.55112e-17 -0.125 0.75 5.55112e-17 -0.1875 0.75 1.38778e-17 -0.25 0.75 6.16298e-33 -0.3125 0.75 -1.38778e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -8.32667e-17 -0.5 0.75 -8.32667e-17 -0.5625 0.75 -5.55112e-17 -0.625 0.75 -8.32667e-17 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -1.2326e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 8.32667e-17 -1 0.75 2.77556e-17 - -0 0.8125 -0.140875 -0.0625 0.8125 -0.130152 -0.125 0.8125 -0.0996138 -0.1875 0.8125 -0.0539106 -0.25 0.8125 -2.08167e-17 -0.3125 0.8125 0.0539106 -0.375 0.8125 0.0996138 -0.4375 0.8125 0.130152 -0.5 0.8125 0.140875 -0.5625 0.8125 0.130152 -0.625 0.8125 0.0996138 -0.6875 0.8125 0.0539106 -0.75 0.8125 2.08167e-17 -0.8125 0.8125 -0.0539106 -0.875 0.8125 -0.0996138 -0.9375 0.8125 -0.130152 -1 0.8125 -0.140875 - -0 0.875 -0.260303 -0.0625 0.875 -0.240489 -0.125 0.875 -0.184062 -0.1875 0.875 -0.0996138 -0.25 0.875 -4.16334e-17 -0.3125 0.875 0.0996138 -0.375 0.875 0.184062 -0.4375 0.875 0.240489 -0.5 0.875 0.260303 -0.5625 0.875 0.240489 -0.625 0.875 0.184062 -0.6875 0.875 0.0996138 -0.75 0.875 4.16334e-17 -0.8125 0.875 -0.0996138 -0.875 0.875 -0.184062 -0.9375 0.875 -0.240489 -1 0.875 -0.260303 - -0 0.9375 -0.340103 -0.0625 0.9375 -0.314214 -0.125 0.9375 -0.240489 -0.1875 0.9375 -0.130152 -0.25 0.9375 -4.85723e-17 -0.3125 0.9375 0.130152 -0.375 0.9375 0.240489 -0.4375 0.9375 0.314214 -0.5 0.9375 0.340103 -0.5625 0.9375 0.314214 -0.625 0.9375 0.240489 -0.6875 0.9375 0.130152 -0.75 0.9375 3.46945e-17 -0.8125 0.9375 -0.130152 -0.875 0.9375 -0.240489 -0.9375 0.9375 -0.314214 -1 0.9375 -0.340103 - -0 1 -0.368125 -0.0625 1 -0.340103 -0.125 1 -0.260303 -0.1875 1 -0.140875 -0.25 1 -5.55112e-17 -0.3125 1 0.140875 -0.375 1 0.260303 -0.4375 1 0.340103 -0.5 1 0.368125 -0.5625 1 0.340103 -0.625 1 0.260303 -0.6875 1 0.140875 -0.75 1 2.77556e-17 -0.8125 1 -0.140875 -0.875 1 -0.260303 -0.9375 1 -0.340103 -1 1 -0.368125 - - -0 0 -0.397148 -0.0625 0 -0.366917 -0.125 0 -0.280826 -0.1875 0 -0.151982 -0.25 0 0 -0.3125 0 0.151982 -0.375 0 0.280826 -0.4375 0 0.366917 -0.5 0 0.397148 -0.5625 0 0.366917 -0.625 0 0.280826 -0.6875 0 0.151982 -0.75 0 1.11022e-16 -0.8125 0 -0.151982 -0.875 0 -0.280826 -0.9375 0 -0.366917 -1 0 -0.397148 - -0 0.0625 -0.366917 -0.0625 0.0625 -0.338987 -0.125 0.0625 -0.259449 -0.1875 0.0625 -0.140413 -0.25 0.0625 -1.04083e-17 -0.3125 0.0625 0.140413 -0.375 0.0625 0.259449 -0.4375 0.0625 0.338987 -0.5 0.0625 0.366917 -0.5625 0.0625 0.338987 -0.625 0.0625 0.259449 -0.6875 0.0625 0.140413 -0.75 0.0625 7.28584e-17 -0.8125 0.0625 -0.140413 -0.875 0.0625 -0.259449 -0.9375 0.0625 -0.338987 -1 0.0625 -0.366917 - -0 0.125 -0.280826 -0.0625 0.125 -0.259449 -0.125 0.125 -0.198574 -0.1875 0.125 -0.107467 -0.25 0.125 -2.08167e-17 -0.3125 0.125 0.107467 -0.375 0.125 0.198574 -0.4375 0.125 0.259449 -0.5 0.125 0.280826 -0.5625 0.125 0.259449 -0.625 0.125 0.198574 -0.6875 0.125 0.107467 -0.75 0.125 6.245e-17 -0.8125 0.125 -0.107467 -0.875 0.125 -0.198574 -0.9375 0.125 -0.259449 -1 0.125 -0.280826 - -0 0.1875 -0.151982 -0.0625 0.1875 -0.140413 -0.125 0.1875 -0.107467 -0.1875 0.1875 -0.058161 -0.25 0.1875 -1.12757e-17 -0.3125 0.1875 0.058161 -0.375 0.1875 0.107467 -0.4375 0.1875 0.140413 -0.5 0.1875 0.151982 -0.5625 0.1875 0.140413 -0.625 0.1875 0.107467 -0.6875 0.1875 0.058161 -0.75 0.1875 3.03577e-17 -0.8125 0.1875 -0.058161 -0.875 0.1875 -0.107467 -0.9375 0.1875 -0.140413 -1 0.1875 -0.151982 - -0 0.25 0 -0.0625 0.25 -5.55112e-17 -0.125 0.25 0 -0.1875 0.25 -1.38778e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 2.77556e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 2.77556e-17 -0.6875 0.25 1.38778e-17 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 -2.77556e-17 -0.9375 0.25 -2.77556e-17 -1 0.25 0 - -0 0.3125 0.151982 -0.0625 0.3125 0.140413 -0.125 0.3125 0.107467 -0.1875 0.3125 0.058161 -0.25 0.3125 6.93889e-18 -0.3125 0.3125 -0.058161 -0.375 0.3125 -0.107467 -0.4375 0.3125 -0.140413 -0.5 0.3125 -0.151982 -0.5625 0.3125 -0.140413 -0.625 0.3125 -0.107467 -0.6875 0.3125 -0.058161 -0.75 0.3125 -3.46945e-17 -0.8125 0.3125 0.058161 -0.875 0.3125 0.107467 -0.9375 0.3125 0.140413 -1 0.3125 0.151982 - -0 0.375 0.280826 -0.0625 0.375 0.259449 -0.125 0.375 0.198574 -0.1875 0.375 0.107467 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.107467 -0.375 0.375 -0.198574 -0.4375 0.375 -0.259449 -0.5 0.375 -0.280826 -0.5625 0.375 -0.259449 -0.625 0.375 -0.198574 -0.6875 0.375 -0.107467 -0.75 0.375 -6.93889e-17 -0.8125 0.375 0.107467 -0.875 0.375 0.198574 -0.9375 0.375 0.259449 -1 0.375 0.280826 - -0 0.4375 0.366917 -0.0625 0.4375 0.338987 -0.125 0.4375 0.259449 -0.1875 0.4375 0.140413 -0.25 0.4375 6.93889e-18 -0.3125 0.4375 -0.140413 -0.375 0.4375 -0.259449 -0.4375 0.4375 -0.338987 -0.5 0.4375 -0.366917 -0.5625 0.4375 -0.338987 -0.625 0.4375 -0.259449 -0.6875 0.4375 -0.140413 -0.75 0.4375 -7.63278e-17 -0.8125 0.4375 0.140413 -0.875 0.4375 0.259449 -0.9375 0.4375 0.338987 -1 0.4375 0.366917 - -0 0.5 0.397148 -0.0625 0.5 0.366917 -0.125 0.5 0.280826 -0.1875 0.5 0.151982 -0.25 0.5 0 -0.3125 0.5 -0.151982 -0.375 0.5 -0.280826 -0.4375 0.5 -0.366917 -0.5 0.5 -0.397148 -0.5625 0.5 -0.366917 -0.625 0.5 -0.280826 -0.6875 0.5 -0.151982 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.151982 -0.875 0.5 0.280826 -0.9375 0.5 0.366917 -1 0.5 0.397148 - -0 0.5625 0.366917 -0.0625 0.5625 0.338987 -0.125 0.5625 0.259449 -0.1875 0.5625 0.140413 -0.25 0.5625 3.46945e-18 -0.3125 0.5625 -0.140413 -0.375 0.5625 -0.259449 -0.4375 0.5625 -0.338987 -0.5 0.5625 -0.366917 -0.5625 0.5625 -0.338987 -0.625 0.5625 -0.259449 -0.6875 0.5625 -0.140413 -0.75 0.5625 -7.97973e-17 -0.8125 0.5625 0.140413 -0.875 0.5625 0.259449 -0.9375 0.5625 0.338987 -1 0.5625 0.366917 - -0 0.625 0.280826 -0.0625 0.625 0.259449 -0.125 0.625 0.198574 -0.1875 0.625 0.107467 -0.25 0.625 6.93889e-18 -0.3125 0.625 -0.107467 -0.375 0.625 -0.198574 -0.4375 0.625 -0.259449 -0.5 0.625 -0.280826 -0.5625 0.625 -0.259449 -0.625 0.625 -0.198574 -0.6875 0.625 -0.107467 -0.75 0.625 -7.63278e-17 -0.8125 0.625 0.107467 -0.875 0.625 0.198574 -0.9375 0.625 0.259449 -1 0.625 0.280826 - -0 0.6875 0.151982 -0.0625 0.6875 0.140413 -0.125 0.6875 0.107467 -0.1875 0.6875 0.058161 -0.25 0.6875 2.60209e-18 -0.3125 0.6875 -0.058161 -0.375 0.6875 -0.107467 -0.4375 0.6875 -0.140413 -0.5 0.6875 -0.151982 -0.5625 0.6875 -0.140413 -0.625 0.6875 -0.107467 -0.6875 0.6875 -0.058161 -0.75 0.6875 -3.90313e-17 -0.8125 0.6875 0.058161 -0.875 0.6875 0.107467 -0.9375 0.6875 0.140413 -1 0.6875 0.151982 - -0 0.75 1.11022e-16 -0.0625 0.75 5.55112e-17 -0.125 0.75 8.32667e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 6.16298e-33 -0.3125 0.75 -1.38778e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -5.55112e-17 -0.5 0.75 -5.55112e-17 -0.5625 0.75 -5.55112e-17 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -1.2326e-32 -0.8125 0.75 4.16334e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 8.32667e-17 -1 0.75 1.11022e-16 - -0 0.8125 -0.151982 -0.0625 0.8125 -0.140413 -0.125 0.8125 -0.107467 -0.1875 0.8125 -0.058161 -0.25 0.8125 -6.93889e-18 -0.3125 0.8125 0.058161 -0.375 0.8125 0.107467 -0.4375 0.8125 0.140413 -0.5 0.8125 0.151982 -0.5625 0.8125 0.140413 -0.625 0.8125 0.107467 -0.6875 0.8125 0.058161 -0.75 0.8125 3.46945e-17 -0.8125 0.8125 -0.058161 -0.875 0.8125 -0.107467 -0.9375 0.8125 -0.140413 -1 0.8125 -0.151982 - -0 0.875 -0.280826 -0.0625 0.875 -0.259449 -0.125 0.875 -0.198574 -0.1875 0.875 -0.107467 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.107467 -0.375 0.875 0.198574 -0.4375 0.875 0.259449 -0.5 0.875 0.280826 -0.5625 0.875 0.259449 -0.625 0.875 0.198574 -0.6875 0.875 0.107467 -0.75 0.875 6.93889e-17 -0.8125 0.875 -0.107467 -0.875 0.875 -0.198574 -0.9375 0.875 -0.259449 -1 0.875 -0.280826 - -0 0.9375 -0.366917 -0.0625 0.9375 -0.338987 -0.125 0.9375 -0.259449 -0.1875 0.9375 -0.140413 -0.25 0.9375 -6.93889e-18 -0.3125 0.9375 0.140413 -0.375 0.9375 0.259449 -0.4375 0.9375 0.338987 -0.5 0.9375 0.366917 -0.5625 0.9375 0.338987 -0.625 0.9375 0.259449 -0.6875 0.9375 0.140413 -0.75 0.9375 7.63278e-17 -0.8125 0.9375 -0.140413 -0.875 0.9375 -0.259449 -0.9375 0.9375 -0.338987 -1 0.9375 -0.366917 - -0 1 -0.397148 -0.0625 1 -0.366917 -0.125 1 -0.280826 -0.1875 1 -0.151982 -0.25 1 0 -0.3125 1 0.151982 -0.375 1 0.280826 -0.4375 1 0.366917 -0.5 1 0.397148 -0.5625 1 0.366917 -0.625 1 0.280826 -0.6875 1 0.151982 -0.75 1 1.11022e-16 -0.8125 1 -0.151982 -0.875 1 -0.280826 -0.9375 1 -0.366917 -1 1 -0.397148 - - -0 0 -0.425779 -0.0625 0 -0.393369 -0.125 0 -0.301071 -0.1875 0 -0.162939 -0.25 0 -5.55112e-17 -0.3125 0 0.162939 -0.375 0 0.301071 -0.4375 0 0.393369 -0.5 0 0.425779 -0.5625 0 0.393369 -0.625 0 0.301071 -0.6875 0 0.162939 -0.75 0 5.55112e-17 -0.8125 0 -0.162939 -0.875 0 -0.301071 -0.9375 0 -0.393369 -1 0 -0.425779 - -0 0.0625 -0.393369 -0.0625 0.0625 -0.363425 -0.125 0.0625 -0.278154 -0.1875 0.0625 -0.150536 -0.25 0.0625 -5.20417e-17 -0.3125 0.0625 0.150536 -0.375 0.0625 0.278154 -0.4375 0.0625 0.363425 -0.5 0.0625 0.393369 -0.5625 0.0625 0.363425 -0.625 0.0625 0.278154 -0.6875 0.0625 0.150536 -0.75 0.0625 5.89806e-17 -0.8125 0.0625 -0.150536 -0.875 0.0625 -0.278154 -0.9375 0.0625 -0.363425 -1 0.0625 -0.393369 - -0 0.125 -0.301071 -0.0625 0.125 -0.278154 -0.125 0.125 -0.21289 -0.1875 0.125 -0.115215 -0.25 0.125 -4.85723e-17 -0.3125 0.125 0.115215 -0.375 0.125 0.21289 -0.4375 0.125 0.278154 -0.5 0.125 0.301071 -0.5625 0.125 0.278154 -0.625 0.125 0.21289 -0.6875 0.125 0.115215 -0.75 0.125 3.46945e-17 -0.8125 0.125 -0.115215 -0.875 0.125 -0.21289 -0.9375 0.125 -0.278154 -1 0.125 -0.301071 - -0 0.1875 -0.162939 -0.0625 0.1875 -0.150536 -0.125 0.1875 -0.115215 -0.1875 0.1875 -0.0623539 -0.25 0.1875 -2.42861e-17 -0.3125 0.1875 0.0623539 -0.375 0.1875 0.115215 -0.4375 0.1875 0.150536 -0.5 0.1875 0.162939 -0.5625 0.1875 0.150536 -0.625 0.1875 0.115215 -0.6875 0.1875 0.0623539 -0.75 0.1875 1.73472e-17 -0.8125 0.1875 -0.0623539 -0.875 0.1875 -0.115215 -0.9375 0.1875 -0.150536 -1 0.1875 -0.162939 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 2.77556e-17 -0.4375 0.25 0 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 2.77556e-17 -0.6875 0.25 0 -0.75 0.25 6.16298e-33 -0.8125 0.25 -1.38778e-17 -0.875 0.25 -2.77556e-17 -0.9375 0.25 -2.77556e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.162939 -0.0625 0.3125 0.150536 -0.125 0.3125 0.115215 -0.1875 0.3125 0.0623539 -0.25 0.3125 2.08167e-17 -0.3125 0.3125 -0.0623539 -0.375 0.3125 -0.115215 -0.4375 0.3125 -0.150536 -0.5 0.3125 -0.162939 -0.5625 0.3125 -0.150536 -0.625 0.3125 -0.115215 -0.6875 0.3125 -0.0623539 -0.75 0.3125 -2.08167e-17 -0.8125 0.3125 0.0623539 -0.875 0.3125 0.115215 -0.9375 0.3125 0.150536 -1 0.3125 0.162939 - -0 0.375 0.301071 -0.0625 0.375 0.278154 -0.125 0.375 0.21289 -0.1875 0.375 0.115215 -0.25 0.375 4.16334e-17 -0.3125 0.375 -0.115215 -0.375 0.375 -0.21289 -0.4375 0.375 -0.278154 -0.5 0.375 -0.301071 -0.5625 0.375 -0.278154 -0.625 0.375 -0.21289 -0.6875 0.375 -0.115215 -0.75 0.375 -4.16334e-17 -0.8125 0.375 0.115215 -0.875 0.375 0.21289 -0.9375 0.375 0.278154 -1 0.375 0.301071 - -0 0.4375 0.393369 -0.0625 0.4375 0.363425 -0.125 0.4375 0.278154 -0.1875 0.4375 0.150536 -0.25 0.4375 4.85723e-17 -0.3125 0.4375 -0.150536 -0.375 0.4375 -0.278154 -0.4375 0.4375 -0.363425 -0.5 0.4375 -0.393369 -0.5625 0.4375 -0.363425 -0.625 0.4375 -0.278154 -0.6875 0.4375 -0.150536 -0.75 0.4375 -6.245e-17 -0.8125 0.4375 0.150536 -0.875 0.4375 0.278154 -0.9375 0.4375 0.363425 -1 0.4375 0.393369 - -0 0.5 0.425779 -0.0625 0.5 0.393369 -0.125 0.5 0.301071 -0.1875 0.5 0.162939 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.162939 -0.375 0.5 -0.301071 -0.4375 0.5 -0.393369 -0.5 0.5 -0.425779 -0.5625 0.5 -0.393369 -0.625 0.5 -0.301071 -0.6875 0.5 -0.162939 -0.75 0.5 -5.55112e-17 -0.8125 0.5 0.162939 -0.875 0.5 0.301071 -0.9375 0.5 0.393369 -1 0.5 0.425779 - -0 0.5625 0.393369 -0.0625 0.5625 0.363425 -0.125 0.5625 0.278154 -0.1875 0.5625 0.150536 -0.25 0.5625 4.51028e-17 -0.3125 0.5625 -0.150536 -0.375 0.5625 -0.278154 -0.4375 0.5625 -0.363425 -0.5 0.5625 -0.393369 -0.5625 0.5625 -0.363425 -0.625 0.5625 -0.278154 -0.6875 0.5625 -0.150536 -0.75 0.5625 -6.59195e-17 -0.8125 0.5625 0.150536 -0.875 0.5625 0.278154 -0.9375 0.5625 0.363425 -1 0.5625 0.393369 - -0 0.625 0.301071 -0.0625 0.625 0.278154 -0.125 0.625 0.21289 -0.1875 0.625 0.115215 -0.25 0.625 3.46945e-17 -0.3125 0.625 -0.115215 -0.375 0.625 -0.21289 -0.4375 0.625 -0.278154 -0.5 0.625 -0.301071 -0.5625 0.625 -0.278154 -0.625 0.625 -0.21289 -0.6875 0.625 -0.115215 -0.75 0.625 -4.85723e-17 -0.8125 0.625 0.115215 -0.875 0.625 0.21289 -0.9375 0.625 0.278154 -1 0.625 0.301071 - -0 0.6875 0.162939 -0.0625 0.6875 0.150536 -0.125 0.6875 0.115215 -0.1875 0.6875 0.0623539 -0.25 0.6875 1.82146e-17 -0.3125 0.6875 -0.0623539 -0.375 0.6875 -0.115215 -0.4375 0.6875 -0.150536 -0.5 0.6875 -0.162939 -0.5625 0.6875 -0.150536 -0.625 0.6875 -0.115215 -0.6875 0.6875 -0.0623539 -0.75 0.6875 -2.34188e-17 -0.8125 0.6875 0.0623539 -0.875 0.6875 0.115215 -0.9375 0.6875 0.150536 -1 0.6875 0.162939 - -0 0.75 5.55112e-17 -0.0625 0.75 5.55112e-17 -0.125 0.75 5.55112e-17 -0.1875 0.75 4.16334e-17 -0.25 0.75 6.16298e-33 -0.3125 0.75 -4.16334e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -5.55112e-17 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -4.16334e-17 -0.75 0.75 -1.2326e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 8.32667e-17 -1 0.75 5.55112e-17 - -0 0.8125 -0.162939 -0.0625 0.8125 -0.150536 -0.125 0.8125 -0.115215 -0.1875 0.8125 -0.0623539 -0.25 0.8125 -2.08167e-17 -0.3125 0.8125 0.0623539 -0.375 0.8125 0.115215 -0.4375 0.8125 0.150536 -0.5 0.8125 0.162939 -0.5625 0.8125 0.150536 -0.625 0.8125 0.115215 -0.6875 0.8125 0.0623539 -0.75 0.8125 2.08167e-17 -0.8125 0.8125 -0.0623539 -0.875 0.8125 -0.115215 -0.9375 0.8125 -0.150536 -1 0.8125 -0.162939 - -0 0.875 -0.301071 -0.0625 0.875 -0.278154 -0.125 0.875 -0.21289 -0.1875 0.875 -0.115215 -0.25 0.875 -4.16334e-17 -0.3125 0.875 0.115215 -0.375 0.875 0.21289 -0.4375 0.875 0.278154 -0.5 0.875 0.301071 -0.5625 0.875 0.278154 -0.625 0.875 0.21289 -0.6875 0.875 0.115215 -0.75 0.875 4.16334e-17 -0.8125 0.875 -0.115215 -0.875 0.875 -0.21289 -0.9375 0.875 -0.278154 -1 0.875 -0.301071 - -0 0.9375 -0.393369 -0.0625 0.9375 -0.363425 -0.125 0.9375 -0.278154 -0.1875 0.9375 -0.150536 -0.25 0.9375 -4.85723e-17 -0.3125 0.9375 0.150536 -0.375 0.9375 0.278154 -0.4375 0.9375 0.363425 -0.5 0.9375 0.393369 -0.5625 0.9375 0.363425 -0.625 0.9375 0.278154 -0.6875 0.9375 0.150536 -0.75 0.9375 6.245e-17 -0.8125 0.9375 -0.150536 -0.875 0.9375 -0.278154 -0.9375 0.9375 -0.363425 -1 0.9375 -0.393369 - -0 1 -0.425779 -0.0625 1 -0.393369 -0.125 1 -0.301071 -0.1875 1 -0.162939 -0.25 1 -5.55112e-17 -0.3125 1 0.162939 -0.375 1 0.301071 -0.4375 1 0.393369 -0.5 1 0.425779 -0.5625 1 0.393369 -0.625 1 0.301071 -0.6875 1 0.162939 -0.75 1 5.55112e-17 -0.8125 1 -0.162939 -0.875 1 -0.301071 -0.9375 1 -0.393369 -1 1 -0.425779 - - -0 0 -0.45399 -0.0625 0 -0.419433 -0.125 0 -0.32102 -0.1875 0 -0.173735 -0.25 0 0 -0.3125 0 0.173735 -0.375 0 0.32102 -0.4375 0 0.419433 -0.5 0 0.45399 -0.5625 0 0.419433 -0.625 0 0.32102 -0.6875 0 0.173735 -0.75 0 1.11022e-16 -0.8125 0 -0.173735 -0.875 0 -0.32102 -0.9375 0 -0.419433 -1 0 -0.45399 - -0 0.0625 -0.419433 -0.0625 0.0625 -0.387505 -0.125 0.0625 -0.296584 -0.1875 0.0625 -0.16051 -0.25 0.0625 -1.04083e-17 -0.3125 0.0625 0.16051 -0.375 0.0625 0.296584 -0.4375 0.0625 0.387505 -0.5 0.0625 0.419433 -0.5625 0.0625 0.387505 -0.625 0.0625 0.296584 -0.6875 0.0625 0.16051 -0.75 0.0625 1.00614e-16 -0.8125 0.0625 -0.16051 -0.875 0.0625 -0.296584 -0.9375 0.0625 -0.387505 -1 0.0625 -0.419433 - -0 0.125 -0.32102 -0.0625 0.125 -0.296584 -0.125 0.125 -0.226995 -0.1875 0.125 -0.122849 -0.25 0.125 -2.08167e-17 -0.3125 0.125 0.122849 -0.375 0.125 0.226995 -0.4375 0.125 0.296584 -0.5 0.125 0.32102 -0.5625 0.125 0.296584 -0.625 0.125 0.226995 -0.6875 0.125 0.122849 -0.75 0.125 6.245e-17 -0.8125 0.125 -0.122849 -0.875 0.125 -0.226995 -0.9375 0.125 -0.296584 -1 0.125 -0.32102 - -0 0.1875 -0.173735 -0.0625 0.1875 -0.16051 -0.125 0.1875 -0.122849 -0.1875 0.1875 -0.0664854 -0.25 0.1875 -1.04083e-17 -0.3125 0.1875 0.0664854 -0.375 0.1875 0.122849 -0.4375 0.1875 0.16051 -0.5 0.1875 0.173735 -0.5625 0.1875 0.16051 -0.625 0.1875 0.122849 -0.6875 0.1875 0.0664854 -0.75 0.1875 3.1225e-17 -0.8125 0.1875 -0.0664854 -0.875 0.1875 -0.122849 -0.9375 0.1875 -0.16051 -1 0.1875 -0.173735 - -0 0.25 0 -0.0625 0.25 0 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -1.38778e-17 -0.25 0.25 -3.08149e-33 -0.3125 0.25 0 -0.375 0.25 2.77556e-17 -0.4375 0.25 0 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 5.55112e-17 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 -1.38778e-17 -0.875 0.25 -2.77556e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 0 - -0 0.3125 0.173735 -0.0625 0.3125 0.16051 -0.125 0.3125 0.122849 -0.1875 0.3125 0.0664854 -0.25 0.3125 6.93889e-18 -0.3125 0.3125 -0.0664854 -0.375 0.3125 -0.122849 -0.4375 0.3125 -0.16051 -0.5 0.3125 -0.173735 -0.5625 0.3125 -0.16051 -0.625 0.3125 -0.122849 -0.6875 0.3125 -0.0664854 -0.75 0.3125 -3.46945e-17 -0.8125 0.3125 0.0664854 -0.875 0.3125 0.122849 -0.9375 0.3125 0.16051 -1 0.3125 0.173735 - -0 0.375 0.32102 -0.0625 0.375 0.296584 -0.125 0.375 0.226995 -0.1875 0.375 0.122849 -0.25 0.375 1.38778e-17 -0.3125 0.375 -0.122849 -0.375 0.375 -0.226995 -0.4375 0.375 -0.296584 -0.5 0.375 -0.32102 -0.5625 0.375 -0.296584 -0.625 0.375 -0.226995 -0.6875 0.375 -0.122849 -0.75 0.375 -6.93889e-17 -0.8125 0.375 0.122849 -0.875 0.375 0.226995 -0.9375 0.375 0.296584 -1 0.375 0.32102 - -0 0.4375 0.419433 -0.0625 0.4375 0.387505 -0.125 0.4375 0.296584 -0.1875 0.4375 0.16051 -0.25 0.4375 6.93889e-18 -0.3125 0.4375 -0.16051 -0.375 0.4375 -0.296584 -0.4375 0.4375 -0.387505 -0.5 0.4375 -0.419433 -0.5625 0.4375 -0.387505 -0.625 0.4375 -0.296584 -0.6875 0.4375 -0.16051 -0.75 0.4375 -1.04083e-16 -0.8125 0.4375 0.16051 -0.875 0.4375 0.296584 -0.9375 0.4375 0.387505 -1 0.4375 0.419433 - -0 0.5 0.45399 -0.0625 0.5 0.419433 -0.125 0.5 0.32102 -0.1875 0.5 0.173735 -0.25 0.5 0 -0.3125 0.5 -0.173735 -0.375 0.5 -0.32102 -0.4375 0.5 -0.419433 -0.5 0.5 -0.45399 -0.5625 0.5 -0.419433 -0.625 0.5 -0.32102 -0.6875 0.5 -0.173735 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.173735 -0.875 0.5 0.32102 -0.9375 0.5 0.419433 -1 0.5 0.45399 - -0 0.5625 0.419433 -0.0625 0.5625 0.387505 -0.125 0.5625 0.296584 -0.1875 0.5625 0.16051 -0.25 0.5625 3.46945e-18 -0.3125 0.5625 -0.16051 -0.375 0.5625 -0.296584 -0.4375 0.5625 -0.387505 -0.5 0.5625 -0.419433 -0.5625 0.5625 -0.387505 -0.625 0.5625 -0.296584 -0.6875 0.5625 -0.16051 -0.75 0.5625 -1.07553e-16 -0.8125 0.5625 0.16051 -0.875 0.5625 0.296584 -0.9375 0.5625 0.387505 -1 0.5625 0.419433 - -0 0.625 0.32102 -0.0625 0.625 0.296584 -0.125 0.625 0.226995 -0.1875 0.625 0.122849 -0.25 0.625 6.93889e-18 -0.3125 0.625 -0.122849 -0.375 0.625 -0.226995 -0.4375 0.625 -0.296584 -0.5 0.625 -0.32102 -0.5625 0.625 -0.296584 -0.625 0.625 -0.226995 -0.6875 0.625 -0.122849 -0.75 0.625 -7.63278e-17 -0.8125 0.625 0.122849 -0.875 0.625 0.226995 -0.9375 0.625 0.296584 -1 0.625 0.32102 - -0 0.6875 0.173735 -0.0625 0.6875 0.16051 -0.125 0.6875 0.122849 -0.1875 0.6875 0.0664854 -0.25 0.6875 3.46945e-18 -0.3125 0.6875 -0.0664854 -0.375 0.6875 -0.122849 -0.4375 0.6875 -0.16051 -0.5 0.6875 -0.173735 -0.5625 0.6875 -0.16051 -0.625 0.6875 -0.122849 -0.6875 0.6875 -0.0664854 -0.75 0.6875 -3.81639e-17 -0.8125 0.6875 0.0664854 -0.875 0.6875 0.122849 -0.9375 0.6875 0.16051 -1 0.6875 0.173735 - -0 0.75 1.11022e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 6.16298e-33 -0.3125 0.75 -4.16334e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -5.55112e-17 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -2.77556e-17 -0.6875 0.75 -4.16334e-17 -0.75 0.75 -1.2326e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 5.55112e-17 -1 0.75 1.11022e-16 - -0 0.8125 -0.173735 -0.0625 0.8125 -0.16051 -0.125 0.8125 -0.122849 -0.1875 0.8125 -0.0664854 -0.25 0.8125 -6.93889e-18 -0.3125 0.8125 0.0664854 -0.375 0.8125 0.122849 -0.4375 0.8125 0.16051 -0.5 0.8125 0.173735 -0.5625 0.8125 0.16051 -0.625 0.8125 0.122849 -0.6875 0.8125 0.0664854 -0.75 0.8125 3.46945e-17 -0.8125 0.8125 -0.0664854 -0.875 0.8125 -0.122849 -0.9375 0.8125 -0.16051 -1 0.8125 -0.173735 - -0 0.875 -0.32102 -0.0625 0.875 -0.296584 -0.125 0.875 -0.226995 -0.1875 0.875 -0.122849 -0.25 0.875 -1.38778e-17 -0.3125 0.875 0.122849 -0.375 0.875 0.226995 -0.4375 0.875 0.296584 -0.5 0.875 0.32102 -0.5625 0.875 0.296584 -0.625 0.875 0.226995 -0.6875 0.875 0.122849 -0.75 0.875 6.93889e-17 -0.8125 0.875 -0.122849 -0.875 0.875 -0.226995 -0.9375 0.875 -0.296584 -1 0.875 -0.32102 - -0 0.9375 -0.419433 -0.0625 0.9375 -0.387505 -0.125 0.9375 -0.296584 -0.1875 0.9375 -0.16051 -0.25 0.9375 -6.93889e-18 -0.3125 0.9375 0.16051 -0.375 0.9375 0.296584 -0.4375 0.9375 0.387505 -0.5 0.9375 0.419433 -0.5625 0.9375 0.387505 -0.625 0.9375 0.296584 -0.6875 0.9375 0.16051 -0.75 0.9375 1.04083e-16 -0.8125 0.9375 -0.16051 -0.875 0.9375 -0.296584 -0.9375 0.9375 -0.387505 -1 0.9375 -0.419433 - -0 1 -0.45399 -0.0625 1 -0.419433 -0.125 1 -0.32102 -0.1875 1 -0.173735 -0.25 1 0 -0.3125 1 0.173735 -0.375 1 0.32102 -0.4375 1 0.419433 -0.5 1 0.45399 -0.5625 1 0.419433 -0.625 1 0.32102 -0.6875 1 0.173735 -0.75 1 1.11022e-16 -0.8125 1 -0.173735 -0.875 1 -0.32102 -0.9375 1 -0.419433 -1 1 -0.45399 - - -0 0 -0.481754 -0.0625 0 -0.445082 -0.125 0 -0.340651 -0.1875 0 -0.184359 -0.25 0 -2.77556e-17 -0.3125 0 0.184359 -0.375 0 0.340651 -0.4375 0 0.445082 -0.5 0 0.481754 -0.5625 0 0.445082 -0.625 0 0.340651 -0.6875 0 0.184359 -0.75 0 8.32667e-17 -0.8125 0 -0.184359 -0.875 0 -0.340651 -0.9375 0 -0.445082 -1 0 -0.481754 - -0 0.0625 -0.445082 -0.0625 0.0625 -0.411202 -0.125 0.0625 -0.314721 -0.1875 0.0625 -0.170326 -0.25 0.0625 -2.42861e-17 -0.3125 0.0625 0.170326 -0.375 0.0625 0.314721 -0.4375 0.0625 0.411202 -0.5 0.0625 0.445082 -0.5625 0.0625 0.411202 -0.625 0.0625 0.314721 -0.6875 0.0625 0.170326 -0.75 0.0625 8.67362e-17 -0.8125 0.0625 -0.170326 -0.875 0.0625 -0.314721 -0.9375 0.0625 -0.411202 -1 0.0625 -0.445082 - -0 0.125 -0.340651 -0.0625 0.125 -0.314721 -0.125 0.125 -0.240877 -0.1875 0.125 -0.130362 -0.25 0.125 -2.08167e-17 -0.3125 0.125 0.130362 -0.375 0.125 0.240877 -0.4375 0.125 0.314721 -0.5 0.125 0.340651 -0.5625 0.125 0.314721 -0.625 0.125 0.240877 -0.6875 0.125 0.130362 -0.75 0.125 6.245e-17 -0.8125 0.125 -0.130362 -0.875 0.125 -0.240877 -0.9375 0.125 -0.314721 -1 0.125 -0.340651 - -0 0.1875 -0.184359 -0.0625 0.1875 -0.170326 -0.125 0.1875 -0.130362 -0.1875 0.1875 -0.0705512 -0.25 0.1875 -9.54098e-18 -0.3125 0.1875 0.0705512 -0.375 0.1875 0.130362 -0.4375 0.1875 0.170326 -0.5 0.1875 0.184359 -0.5625 0.1875 0.170326 -0.625 0.1875 0.130362 -0.6875 0.1875 0.0705512 -0.75 0.1875 3.20924e-17 -0.8125 0.1875 -0.0705512 -0.875 0.1875 -0.130362 -0.9375 0.1875 -0.170326 -1 0.1875 -0.184359 - -0 0.25 -2.77556e-17 -0.0625 0.25 0 -0.125 0.25 0 -0.1875 0.25 -1.38778e-17 -0.25 0.25 -3.08149e-33 -0.3125 0.25 1.38778e-17 -0.375 0.25 0 -0.4375 0.25 0 -0.5 0.25 2.77556e-17 -0.5625 0.25 2.77556e-17 -0.625 0.25 2.77556e-17 -0.6875 0.25 2.77556e-17 -0.75 0.25 6.16298e-33 -0.8125 0.25 -1.38778e-17 -0.875 0.25 -2.77556e-17 -0.9375 0.25 -2.77556e-17 -1 0.25 -2.77556e-17 - -0 0.3125 0.184359 -0.0625 0.3125 0.170326 -0.125 0.3125 0.130362 -0.1875 0.3125 0.0705512 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.0705512 -0.375 0.3125 -0.130362 -0.4375 0.3125 -0.170326 -0.5 0.3125 -0.184359 -0.5625 0.3125 -0.170326 -0.625 0.3125 -0.130362 -0.6875 0.3125 -0.0705512 -0.75 0.3125 -2.77556e-17 -0.8125 0.3125 0.0705512 -0.875 0.3125 0.130362 -0.9375 0.3125 0.170326 -1 0.3125 0.184359 - -0 0.375 0.340651 -0.0625 0.375 0.314721 -0.125 0.375 0.240877 -0.1875 0.375 0.130362 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.130362 -0.375 0.375 -0.240877 -0.4375 0.375 -0.314721 -0.5 0.375 -0.340651 -0.5625 0.375 -0.314721 -0.625 0.375 -0.240877 -0.6875 0.375 -0.130362 -0.75 0.375 -5.55112e-17 -0.8125 0.375 0.130362 -0.875 0.375 0.240877 -0.9375 0.375 0.314721 -1 0.375 0.340651 - -0 0.4375 0.445082 -0.0625 0.4375 0.411202 -0.125 0.4375 0.314721 -0.1875 0.4375 0.170326 -0.25 0.4375 2.77556e-17 -0.3125 0.4375 -0.170326 -0.375 0.4375 -0.314721 -0.4375 0.4375 -0.411202 -0.5 0.4375 -0.445082 -0.5625 0.4375 -0.411202 -0.625 0.4375 -0.314721 -0.6875 0.4375 -0.170326 -0.75 0.4375 -8.32667e-17 -0.8125 0.4375 0.170326 -0.875 0.4375 0.314721 -0.9375 0.4375 0.411202 -1 0.4375 0.445082 - -0 0.5 0.481754 -0.0625 0.5 0.445082 -0.125 0.5 0.340651 -0.1875 0.5 0.184359 -0.25 0.5 2.77556e-17 -0.3125 0.5 -0.184359 -0.375 0.5 -0.340651 -0.4375 0.5 -0.445082 -0.5 0.5 -0.481754 -0.5625 0.5 -0.445082 -0.625 0.5 -0.340651 -0.6875 0.5 -0.184359 -0.75 0.5 -8.32667e-17 -0.8125 0.5 0.184359 -0.875 0.5 0.340651 -0.9375 0.5 0.445082 -1 0.5 0.481754 - -0 0.5625 0.445082 -0.0625 0.5625 0.411202 -0.125 0.5625 0.314721 -0.1875 0.5625 0.170326 -0.25 0.5625 3.1225e-17 -0.3125 0.5625 -0.170326 -0.375 0.5625 -0.314721 -0.4375 0.5625 -0.411202 -0.5 0.5625 -0.445082 -0.5625 0.5625 -0.411202 -0.625 0.5625 -0.314721 -0.6875 0.5625 -0.170326 -0.75 0.5625 -7.97973e-17 -0.8125 0.5625 0.170326 -0.875 0.5625 0.314721 -0.9375 0.5625 0.411202 -1 0.5625 0.445082 - -0 0.625 0.340651 -0.0625 0.625 0.314721 -0.125 0.625 0.240877 -0.1875 0.625 0.130362 -0.25 0.625 3.46945e-17 -0.3125 0.625 -0.130362 -0.375 0.625 -0.240877 -0.4375 0.625 -0.314721 -0.5 0.625 -0.340651 -0.5625 0.625 -0.314721 -0.625 0.625 -0.240877 -0.6875 0.625 -0.130362 -0.75 0.625 -4.85723e-17 -0.8125 0.625 0.130362 -0.875 0.625 0.240877 -0.9375 0.625 0.314721 -1 0.625 0.340651 - -0 0.6875 0.184359 -0.0625 0.6875 0.170326 -0.125 0.6875 0.130362 -0.1875 0.6875 0.0705512 -0.25 0.6875 1.73472e-17 -0.3125 0.6875 -0.0705512 -0.375 0.6875 -0.130362 -0.4375 0.6875 -0.170326 -0.5 0.6875 -0.184359 -0.5625 0.6875 -0.170326 -0.625 0.6875 -0.130362 -0.6875 0.6875 -0.0705512 -0.75 0.6875 -2.42861e-17 -0.8125 0.6875 0.0705512 -0.875 0.6875 0.130362 -0.9375 0.6875 0.170326 -1 0.6875 0.184359 - -0 0.75 8.32667e-17 -0.0625 0.75 1.11022e-16 -0.125 0.75 8.32667e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 6.16298e-33 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -8.32667e-17 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -8.32667e-17 -0.5625 0.75 -8.32667e-17 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -1.38778e-17 -0.75 0.75 -1.84889e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 8.32667e-17 -1 0.75 8.32667e-17 - -0 0.8125 -0.184359 -0.0625 0.8125 -0.170326 -0.125 0.8125 -0.130362 -0.1875 0.8125 -0.0705512 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.0705512 -0.375 0.8125 0.130362 -0.4375 0.8125 0.170326 -0.5 0.8125 0.184359 -0.5625 0.8125 0.170326 -0.625 0.8125 0.130362 -0.6875 0.8125 0.0705512 -0.75 0.8125 2.77556e-17 -0.8125 0.8125 -0.0705512 -0.875 0.8125 -0.130362 -0.9375 0.8125 -0.170326 -1 0.8125 -0.184359 - -0 0.875 -0.340651 -0.0625 0.875 -0.314721 -0.125 0.875 -0.240877 -0.1875 0.875 -0.130362 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.130362 -0.375 0.875 0.240877 -0.4375 0.875 0.314721 -0.5 0.875 0.340651 -0.5625 0.875 0.314721 -0.625 0.875 0.240877 -0.6875 0.875 0.130362 -0.75 0.875 5.55112e-17 -0.8125 0.875 -0.130362 -0.875 0.875 -0.240877 -0.9375 0.875 -0.314721 -1 0.875 -0.340651 - -0 0.9375 -0.445082 -0.0625 0.9375 -0.411202 -0.125 0.9375 -0.314721 -0.1875 0.9375 -0.170326 -0.25 0.9375 -2.77556e-17 -0.3125 0.9375 0.170326 -0.375 0.9375 0.314721 -0.4375 0.9375 0.411202 -0.5 0.9375 0.445082 -0.5625 0.9375 0.411202 -0.625 0.9375 0.314721 -0.6875 0.9375 0.170326 -0.75 0.9375 8.32667e-17 -0.8125 0.9375 -0.170326 -0.875 0.9375 -0.314721 -0.9375 0.9375 -0.411202 -1 0.9375 -0.445082 - -0 1 -0.481754 -0.0625 1 -0.445082 -0.125 1 -0.340651 -0.1875 1 -0.184359 -0.25 1 -2.77556e-17 -0.3125 1 0.184359 -0.375 1 0.340651 -0.4375 1 0.445082 -0.5 1 0.481754 -0.5625 1 0.445082 -0.625 1 0.340651 -0.6875 1 0.184359 -0.75 1 8.32667e-17 -0.8125 1 -0.184359 -0.875 1 -0.340651 -0.9375 1 -0.445082 -1 1 -0.481754 - - -0 0 -0.509041 -0.0625 0 -0.470293 -0.125 0 -0.359947 -0.1875 0 -0.194802 -0.25 0 -5.55112e-17 -0.3125 0 0.194802 -0.375 0 0.359947 -0.4375 0 0.470293 -0.5 0 0.509041 -0.5625 0 0.470293 -0.625 0 0.359947 -0.6875 0 0.194802 -0.75 0 1.11022e-16 -0.8125 0 -0.194802 -0.875 0 -0.359947 -0.9375 0 -0.470293 -1 0 -0.509041 - -0 0.0625 -0.470293 -0.0625 0.0625 -0.434494 -0.125 0.0625 -0.332547 -0.1875 0.0625 -0.179973 -0.25 0.0625 -2.42861e-17 -0.3125 0.0625 0.179973 -0.375 0.0625 0.332547 -0.4375 0.0625 0.434494 -0.5 0.0625 0.470293 -0.5625 0.0625 0.434494 -0.625 0.0625 0.332547 -0.6875 0.0625 0.179973 -0.75 0.0625 8.67362e-17 -0.8125 0.0625 -0.179973 -0.875 0.0625 -0.332547 -0.9375 0.0625 -0.434494 -1 0.0625 -0.470293 - -0 0.125 -0.359947 -0.0625 0.125 -0.332547 -0.125 0.125 -0.254521 -0.1875 0.125 -0.137746 -0.25 0.125 -2.08167e-17 -0.3125 0.125 0.137746 -0.375 0.125 0.254521 -0.4375 0.125 0.332547 -0.5 0.125 0.359947 -0.5625 0.125 0.332547 -0.625 0.125 0.254521 -0.6875 0.125 0.137746 -0.75 0.125 6.245e-17 -0.8125 0.125 -0.137746 -0.875 0.125 -0.254521 -0.9375 0.125 -0.332547 -1 0.125 -0.359947 - -0 0.1875 -0.194802 -0.0625 0.1875 -0.179973 -0.125 0.1875 -0.137746 -0.1875 0.1875 -0.0745474 -0.25 0.1875 -9.54098e-18 -0.3125 0.1875 0.0745474 -0.375 0.1875 0.137746 -0.4375 0.1875 0.179973 -0.5 0.1875 0.194802 -0.5625 0.1875 0.179973 -0.625 0.1875 0.137746 -0.6875 0.1875 0.0745474 -0.75 0.1875 4.59702e-17 -0.8125 0.1875 -0.0745474 -0.875 0.1875 -0.137746 -0.9375 0.1875 -0.179973 -1 0.1875 -0.194802 - -0 0.25 -5.55112e-17 -0.0625 0.25 -2.77556e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 1.38778e-17 -0.375 0.25 0 -0.4375 0.25 2.77556e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 8.32667e-17 -0.625 0.25 5.55112e-17 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 -8.32667e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.194802 -0.0625 0.3125 0.179973 -0.125 0.3125 0.137746 -0.1875 0.3125 0.0745474 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.0745474 -0.375 0.3125 -0.137746 -0.4375 0.3125 -0.179973 -0.5 0.3125 -0.194802 -0.5625 0.3125 -0.179973 -0.625 0.3125 -0.137746 -0.6875 0.3125 -0.0745474 -0.75 0.3125 -4.16334e-17 -0.8125 0.3125 0.0745474 -0.875 0.3125 0.137746 -0.9375 0.3125 0.179973 -1 0.3125 0.194802 - -0 0.375 0.359947 -0.0625 0.375 0.332547 -0.125 0.375 0.254521 -0.1875 0.375 0.137746 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.137746 -0.375 0.375 -0.254521 -0.4375 0.375 -0.332547 -0.5 0.375 -0.359947 -0.5625 0.375 -0.332547 -0.625 0.375 -0.254521 -0.6875 0.375 -0.137746 -0.75 0.375 -5.55112e-17 -0.8125 0.375 0.137746 -0.875 0.375 0.254521 -0.9375 0.375 0.332547 -1 0.375 0.359947 - -0 0.4375 0.470293 -0.0625 0.4375 0.434494 -0.125 0.4375 0.332547 -0.1875 0.4375 0.179973 -0.25 0.4375 2.77556e-17 -0.3125 0.4375 -0.179973 -0.375 0.4375 -0.332547 -0.4375 0.4375 -0.434494 -0.5 0.4375 -0.470293 -0.5625 0.4375 -0.434494 -0.625 0.4375 -0.332547 -0.6875 0.4375 -0.179973 -0.75 0.4375 -8.32667e-17 -0.8125 0.4375 0.179973 -0.875 0.4375 0.332547 -0.9375 0.4375 0.434494 -1 0.4375 0.470293 - -0 0.5 0.509041 -0.0625 0.5 0.470293 -0.125 0.5 0.359947 -0.1875 0.5 0.194802 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.194802 -0.375 0.5 -0.359947 -0.4375 0.5 -0.470293 -0.5 0.5 -0.509041 -0.5625 0.5 -0.470293 -0.625 0.5 -0.359947 -0.6875 0.5 -0.194802 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.194802 -0.875 0.5 0.359947 -0.9375 0.5 0.470293 -1 0.5 0.509041 - -0 0.5625 0.470293 -0.0625 0.5625 0.434494 -0.125 0.5625 0.332547 -0.1875 0.5625 0.179973 -0.25 0.5625 3.1225e-17 -0.3125 0.5625 -0.179973 -0.375 0.5625 -0.332547 -0.4375 0.5625 -0.434494 -0.5 0.5625 -0.470293 -0.5625 0.5625 -0.434494 -0.625 0.5625 -0.332547 -0.6875 0.5625 -0.179973 -0.75 0.5625 -7.97973e-17 -0.8125 0.5625 0.179973 -0.875 0.5625 0.332547 -0.9375 0.5625 0.434494 -1 0.5625 0.470293 - -0 0.625 0.359947 -0.0625 0.625 0.332547 -0.125 0.625 0.254521 -0.1875 0.625 0.137746 -0.25 0.625 3.46945e-17 -0.3125 0.625 -0.137746 -0.375 0.625 -0.254521 -0.4375 0.625 -0.332547 -0.5 0.625 -0.359947 -0.5625 0.625 -0.332547 -0.625 0.625 -0.254521 -0.6875 0.625 -0.137746 -0.75 0.625 -4.85723e-17 -0.8125 0.625 0.137746 -0.875 0.625 0.254521 -0.9375 0.625 0.332547 -1 0.625 0.359947 - -0 0.6875 0.194802 -0.0625 0.6875 0.179973 -0.125 0.6875 0.137746 -0.1875 0.6875 0.0745474 -0.25 0.6875 1.82146e-17 -0.3125 0.6875 -0.0745474 -0.375 0.6875 -0.137746 -0.4375 0.6875 -0.179973 -0.5 0.6875 -0.194802 -0.5625 0.6875 -0.179973 -0.625 0.6875 -0.137746 -0.6875 0.6875 -0.0745474 -0.75 0.6875 -3.72966e-17 -0.8125 0.6875 0.0745474 -0.875 0.6875 0.137746 -0.9375 0.6875 0.179973 -1 0.6875 0.194802 - -0 0.75 1.11022e-16 -0.0625 0.75 1.38778e-16 -0.125 0.75 8.32667e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 0 -0.3125 0.75 -4.16334e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.38778e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -8.32667e-17 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 8.32667e-17 -1 0.75 1.11022e-16 - -0 0.8125 -0.194802 -0.0625 0.8125 -0.179973 -0.125 0.8125 -0.137746 -0.1875 0.8125 -0.0745474 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.0745474 -0.375 0.8125 0.137746 -0.4375 0.8125 0.179973 -0.5 0.8125 0.194802 -0.5625 0.8125 0.179973 -0.625 0.8125 0.137746 -0.6875 0.8125 0.0745474 -0.75 0.8125 4.16334e-17 -0.8125 0.8125 -0.0745474 -0.875 0.8125 -0.137746 -0.9375 0.8125 -0.179973 -1 0.8125 -0.194802 - -0 0.875 -0.359947 -0.0625 0.875 -0.332547 -0.125 0.875 -0.254521 -0.1875 0.875 -0.137746 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.137746 -0.375 0.875 0.254521 -0.4375 0.875 0.332547 -0.5 0.875 0.359947 -0.5625 0.875 0.332547 -0.625 0.875 0.254521 -0.6875 0.875 0.137746 -0.75 0.875 5.55112e-17 -0.8125 0.875 -0.137746 -0.875 0.875 -0.254521 -0.9375 0.875 -0.332547 -1 0.875 -0.359947 - -0 0.9375 -0.470293 -0.0625 0.9375 -0.434494 -0.125 0.9375 -0.332547 -0.1875 0.9375 -0.179973 -0.25 0.9375 -2.77556e-17 -0.3125 0.9375 0.179973 -0.375 0.9375 0.332547 -0.4375 0.9375 0.434494 -0.5 0.9375 0.470293 -0.5625 0.9375 0.434494 -0.625 0.9375 0.332547 -0.6875 0.9375 0.179973 -0.75 0.9375 8.32667e-17 -0.8125 0.9375 -0.179973 -0.875 0.9375 -0.332547 -0.9375 0.9375 -0.434494 -1 0.9375 -0.470293 - -0 1 -0.509041 -0.0625 1 -0.470293 -0.125 1 -0.359947 -0.1875 1 -0.194802 -0.25 1 -5.55112e-17 -0.3125 1 0.194802 -0.375 1 0.359947 -0.4375 1 0.470293 -0.5 1 0.509041 -0.5625 1 0.470293 -0.625 1 0.359947 -0.6875 1 0.194802 -0.75 1 1.11022e-16 -0.8125 1 -0.194802 -0.875 1 -0.359947 -0.9375 1 -0.470293 -1 1 -0.509041 - - -0 0 -0.535827 -0.0625 0 -0.495039 -0.125 0 -0.378887 -0.1875 0 -0.205052 -0.25 0 0 -0.3125 0 0.205052 -0.375 0 0.378887 -0.4375 0 0.495039 -0.5 0 0.535827 -0.5625 0 0.495039 -0.625 0 0.378887 -0.6875 0 0.205052 -0.75 0 1.66533e-16 -0.8125 0 -0.205052 -0.875 0 -0.378887 -0.9375 0 -0.495039 -1 0 -0.535827 - -0 0.0625 -0.495039 -0.0625 0.0625 -0.457357 -0.125 0.0625 -0.350046 -0.1875 0.0625 -0.189443 -0.25 0.0625 1.73472e-17 -0.3125 0.0625 0.189443 -0.375 0.0625 0.350046 -0.4375 0.0625 0.457357 -0.5 0.0625 0.495039 -0.5625 0.0625 0.457357 -0.625 0.0625 0.350046 -0.6875 0.0625 0.189443 -0.75 0.0625 1.2837e-16 -0.8125 0.0625 -0.189443 -0.875 0.0625 -0.350046 -0.9375 0.0625 -0.457357 -1 0.0625 -0.495039 - -0 0.125 -0.378887 -0.0625 0.125 -0.350046 -0.125 0.125 -0.267913 -0.1875 0.125 -0.144994 -0.25 0.125 6.93889e-18 -0.3125 0.125 0.144994 -0.375 0.125 0.267913 -0.4375 0.125 0.350046 -0.5 0.125 0.378887 -0.5625 0.125 0.350046 -0.625 0.125 0.267913 -0.6875 0.125 0.144994 -0.75 0.125 1.17961e-16 -0.8125 0.125 -0.144994 -0.875 0.125 -0.267913 -0.9375 0.125 -0.350046 -1 0.125 -0.378887 - -0 0.1875 -0.205052 -0.0625 0.1875 -0.189443 -0.125 0.1875 -0.144994 -0.1875 0.1875 -0.07847 -0.25 0.1875 4.33681e-18 -0.3125 0.1875 0.07847 -0.375 0.1875 0.144994 -0.4375 0.1875 0.189443 -0.5 0.1875 0.205052 -0.5625 0.1875 0.189443 -0.625 0.1875 0.144994 -0.6875 0.1875 0.07847 -0.75 0.1875 5.9848e-17 -0.8125 0.1875 -0.07847 -0.875 0.1875 -0.144994 -0.9375 0.1875 -0.189443 -1 0.1875 -0.205052 - -0 0.25 0 -0.0625 0.25 -8.32667e-17 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -1.38778e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 8.32667e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 8.32667e-17 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -2.77556e-17 -0.9375 0.25 -2.77556e-17 -1 0.25 0 - -0 0.3125 0.205052 -0.0625 0.3125 0.189443 -0.125 0.3125 0.144994 -0.1875 0.3125 0.07847 -0.25 0.3125 0 -0.3125 0.3125 -0.07847 -0.375 0.3125 -0.144994 -0.4375 0.3125 -0.189443 -0.5 0.3125 -0.205052 -0.5625 0.3125 -0.189443 -0.625 0.3125 -0.144994 -0.6875 0.3125 -0.07847 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.07847 -0.875 0.3125 0.144994 -0.9375 0.3125 0.189443 -1 0.3125 0.205052 - -0 0.375 0.378887 -0.0625 0.375 0.350046 -0.125 0.375 0.267913 -0.1875 0.375 0.144994 -0.25 0.375 0 -0.3125 0.375 -0.144994 -0.375 0.375 -0.267913 -0.4375 0.375 -0.350046 -0.5 0.375 -0.378887 -0.5625 0.375 -0.350046 -0.625 0.375 -0.267913 -0.6875 0.375 -0.144994 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.144994 -0.875 0.375 0.267913 -0.9375 0.375 0.350046 -1 0.375 0.378887 - -0 0.4375 0.495039 -0.0625 0.4375 0.457357 -0.125 0.4375 0.350046 -0.1875 0.4375 0.189443 -0.25 0.4375 -1.38778e-17 -0.3125 0.4375 -0.189443 -0.375 0.4375 -0.350046 -0.4375 0.4375 -0.457357 -0.5 0.4375 -0.495039 -0.5625 0.4375 -0.457357 -0.625 0.4375 -0.350046 -0.6875 0.4375 -0.189443 -0.75 0.4375 -1.249e-16 -0.8125 0.4375 0.189443 -0.875 0.4375 0.350046 -0.9375 0.4375 0.457357 -1 0.4375 0.495039 - -0 0.5 0.535827 -0.0625 0.5 0.495039 -0.125 0.5 0.378887 -0.1875 0.5 0.205052 -0.25 0.5 0 -0.3125 0.5 -0.205052 -0.375 0.5 -0.378887 -0.4375 0.5 -0.495039 -0.5 0.5 -0.535827 -0.5625 0.5 -0.495039 -0.625 0.5 -0.378887 -0.6875 0.5 -0.205052 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.205052 -0.875 0.5 0.378887 -0.9375 0.5 0.495039 -1 0.5 0.535827 - -0 0.5625 0.495039 -0.0625 0.5625 0.457357 -0.125 0.5625 0.350046 -0.1875 0.5625 0.189443 -0.25 0.5625 -1.38778e-17 -0.3125 0.5625 -0.189443 -0.375 0.5625 -0.350046 -0.4375 0.5625 -0.457357 -0.5 0.5625 -0.495039 -0.5625 0.5625 -0.457357 -0.625 0.5625 -0.350046 -0.6875 0.5625 -0.189443 -0.75 0.5625 -1.249e-16 -0.8125 0.5625 0.189443 -0.875 0.5625 0.350046 -0.9375 0.5625 0.457357 -1 0.5625 0.495039 - -0 0.625 0.378887 -0.0625 0.625 0.350046 -0.125 0.625 0.267913 -0.1875 0.625 0.144994 -0.25 0.625 0 -0.3125 0.625 -0.144994 -0.375 0.625 -0.267913 -0.4375 0.625 -0.350046 -0.5 0.625 -0.378887 -0.5625 0.625 -0.350046 -0.625 0.625 -0.267913 -0.6875 0.625 -0.144994 -0.75 0.625 -1.11022e-16 -0.8125 0.625 0.144994 -0.875 0.625 0.267913 -0.9375 0.625 0.350046 -1 0.625 0.378887 - -0 0.6875 0.205052 -0.0625 0.6875 0.189443 -0.125 0.6875 0.144994 -0.1875 0.6875 0.07847 -0.25 0.6875 0 -0.3125 0.6875 -0.07847 -0.375 0.6875 -0.144994 -0.4375 0.6875 -0.189443 -0.5 0.6875 -0.205052 -0.5625 0.6875 -0.189443 -0.625 0.6875 -0.144994 -0.6875 0.6875 -0.07847 -0.75 0.6875 -5.55112e-17 -0.8125 0.6875 0.07847 -0.875 0.6875 0.144994 -0.9375 0.6875 0.189443 -1 0.6875 0.205052 - -0 0.75 1.66533e-16 -0.0625 0.75 8.32667e-17 -0.125 0.75 5.55112e-17 -0.1875 0.75 4.16334e-17 -0.25 0.75 0 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -8.32667e-17 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -8.32667e-17 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 8.32667e-17 -0.9375 0.75 1.38778e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.205052 -0.0625 0.8125 -0.189443 -0.125 0.8125 -0.144994 -0.1875 0.8125 -0.07847 -0.25 0.8125 0 -0.3125 0.8125 0.07847 -0.375 0.8125 0.144994 -0.4375 0.8125 0.189443 -0.5 0.8125 0.205052 -0.5625 0.8125 0.189443 -0.625 0.8125 0.144994 -0.6875 0.8125 0.07847 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.07847 -0.875 0.8125 -0.144994 -0.9375 0.8125 -0.189443 -1 0.8125 -0.205052 - -0 0.875 -0.378887 -0.0625 0.875 -0.350046 -0.125 0.875 -0.267913 -0.1875 0.875 -0.144994 -0.25 0.875 0 -0.3125 0.875 0.144994 -0.375 0.875 0.267913 -0.4375 0.875 0.350046 -0.5 0.875 0.378887 -0.5625 0.875 0.350046 -0.625 0.875 0.267913 -0.6875 0.875 0.144994 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.144994 -0.875 0.875 -0.267913 -0.9375 0.875 -0.350046 -1 0.875 -0.378887 - -0 0.9375 -0.495039 -0.0625 0.9375 -0.457357 -0.125 0.9375 -0.350046 -0.1875 0.9375 -0.189443 -0.25 0.9375 1.38778e-17 -0.3125 0.9375 0.189443 -0.375 0.9375 0.350046 -0.4375 0.9375 0.457357 -0.5 0.9375 0.495039 -0.5625 0.9375 0.457357 -0.625 0.9375 0.350046 -0.6875 0.9375 0.189443 -0.75 0.9375 1.249e-16 -0.8125 0.9375 -0.189443 -0.875 0.9375 -0.350046 -0.9375 0.9375 -0.457357 -1 0.9375 -0.495039 - -0 1 -0.535827 -0.0625 1 -0.495039 -0.125 1 -0.378887 -0.1875 1 -0.205052 -0.25 1 0 -0.3125 1 0.205052 -0.375 1 0.378887 -0.4375 1 0.495039 -0.5 1 0.535827 -0.5625 1 0.495039 -0.625 1 0.378887 -0.6875 1 0.205052 -0.75 1 1.66533e-16 -0.8125 1 -0.205052 -0.875 1 -0.378887 -0.9375 1 -0.495039 -1 1 -0.535827 - - -0 0 -0.562083 -0.0625 0 -0.519297 -0.125 0 -0.397453 -0.1875 0 -0.2151 -0.25 0 0 -0.3125 0 0.2151 -0.375 0 0.397453 -0.4375 0 0.519297 -0.5 0 0.562083 -0.5625 0 0.519297 -0.625 0 0.397453 -0.6875 0 0.2151 -0.75 0 1.66533e-16 -0.8125 0 -0.2151 -0.875 0 -0.397453 -0.9375 0 -0.519297 -1 0 -0.562083 - -0 0.0625 -0.519297 -0.0625 0.0625 -0.479768 -0.125 0.0625 -0.367199 -0.1875 0.0625 -0.198726 -0.25 0.0625 -1.04083e-17 -0.3125 0.0625 0.198726 -0.375 0.0625 0.367199 -0.4375 0.0625 0.479768 -0.5 0.0625 0.519297 -0.5625 0.0625 0.479768 -0.625 0.0625 0.367199 -0.6875 0.0625 0.198726 -0.75 0.0625 1.56125e-16 -0.8125 0.0625 -0.198726 -0.875 0.0625 -0.367199 -0.9375 0.0625 -0.479768 -1 0.0625 -0.519297 - -0 0.125 -0.397453 -0.0625 0.125 -0.367199 -0.125 0.125 -0.281042 -0.1875 0.125 -0.152099 -0.25 0.125 6.93889e-18 -0.3125 0.125 0.152099 -0.375 0.125 0.281042 -0.4375 0.125 0.367199 -0.5 0.125 0.397453 -0.5625 0.125 0.367199 -0.625 0.125 0.281042 -0.6875 0.125 0.152099 -0.75 0.125 1.17961e-16 -0.8125 0.125 -0.152099 -0.875 0.125 -0.281042 -0.9375 0.125 -0.367199 -1 0.125 -0.397453 - -0 0.1875 -0.2151 -0.0625 0.1875 -0.198726 -0.125 0.1875 -0.152099 -0.1875 0.1875 -0.0823152 -0.25 0.1875 5.20417e-18 -0.3125 0.1875 0.0823152 -0.375 0.1875 0.152099 -0.4375 0.1875 0.198726 -0.5 0.1875 0.2151 -0.5625 0.1875 0.198726 -0.625 0.1875 0.152099 -0.6875 0.1875 0.0823152 -0.75 0.1875 6.07153e-17 -0.8125 0.1875 -0.0823152 -0.875 0.1875 -0.152099 -0.9375 0.1875 -0.198726 -1 0.1875 -0.2151 - -0 0.25 0 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -1.38778e-17 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 2.77556e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 0 -0.6875 0.25 2.77556e-17 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 0 - -0 0.3125 0.2151 -0.0625 0.3125 0.198726 -0.125 0.3125 0.152099 -0.1875 0.3125 0.0823152 -0.25 0.3125 0 -0.3125 0.3125 -0.0823152 -0.375 0.3125 -0.152099 -0.4375 0.3125 -0.198726 -0.5 0.3125 -0.2151 -0.5625 0.3125 -0.198726 -0.625 0.3125 -0.152099 -0.6875 0.3125 -0.0823152 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.0823152 -0.875 0.3125 0.152099 -0.9375 0.3125 0.198726 -1 0.3125 0.2151 - -0 0.375 0.397453 -0.0625 0.375 0.367199 -0.125 0.375 0.281042 -0.1875 0.375 0.152099 -0.25 0.375 0 -0.3125 0.375 -0.152099 -0.375 0.375 -0.281042 -0.4375 0.375 -0.367199 -0.5 0.375 -0.397453 -0.5625 0.375 -0.367199 -0.625 0.375 -0.281042 -0.6875 0.375 -0.152099 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.152099 -0.875 0.375 0.281042 -0.9375 0.375 0.367199 -1 0.375 0.397453 - -0 0.4375 0.519297 -0.0625 0.4375 0.479768 -0.125 0.4375 0.367199 -0.1875 0.4375 0.198726 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.198726 -0.375 0.4375 -0.367199 -0.4375 0.4375 -0.479768 -0.5 0.4375 -0.519297 -0.5625 0.4375 -0.479768 -0.625 0.4375 -0.367199 -0.6875 0.4375 -0.198726 -0.75 0.4375 -1.52656e-16 -0.8125 0.4375 0.198726 -0.875 0.4375 0.367199 -0.9375 0.4375 0.479768 -1 0.4375 0.519297 - -0 0.5 0.562083 -0.0625 0.5 0.519297 -0.125 0.5 0.397453 -0.1875 0.5 0.2151 -0.25 0.5 0 -0.3125 0.5 -0.2151 -0.375 0.5 -0.397453 -0.4375 0.5 -0.519297 -0.5 0.5 -0.562083 -0.5625 0.5 -0.519297 -0.625 0.5 -0.397453 -0.6875 0.5 -0.2151 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.2151 -0.875 0.5 0.397453 -0.9375 0.5 0.519297 -1 0.5 0.562083 - -0 0.5625 0.519297 -0.0625 0.5625 0.479768 -0.125 0.5625 0.367199 -0.1875 0.5625 0.198726 -0.25 0.5625 1.38778e-17 -0.3125 0.5625 -0.198726 -0.375 0.5625 -0.367199 -0.4375 0.5625 -0.479768 -0.5 0.5625 -0.519297 -0.5625 0.5625 -0.479768 -0.625 0.5625 -0.367199 -0.6875 0.5625 -0.198726 -0.75 0.5625 -1.52656e-16 -0.8125 0.5625 0.198726 -0.875 0.5625 0.367199 -0.9375 0.5625 0.479768 -1 0.5625 0.519297 - -0 0.625 0.397453 -0.0625 0.625 0.367199 -0.125 0.625 0.281042 -0.1875 0.625 0.152099 -0.25 0.625 0 -0.3125 0.625 -0.152099 -0.375 0.625 -0.281042 -0.4375 0.625 -0.367199 -0.5 0.625 -0.397453 -0.5625 0.625 -0.367199 -0.625 0.625 -0.281042 -0.6875 0.625 -0.152099 -0.75 0.625 -1.11022e-16 -0.8125 0.625 0.152099 -0.875 0.625 0.281042 -0.9375 0.625 0.367199 -1 0.625 0.397453 - -0 0.6875 0.2151 -0.0625 0.6875 0.198726 -0.125 0.6875 0.152099 -0.1875 0.6875 0.0823152 -0.25 0.6875 1.73472e-18 -0.3125 0.6875 -0.0823152 -0.375 0.6875 -0.152099 -0.4375 0.6875 -0.198726 -0.5 0.6875 -0.2151 -0.5625 0.6875 -0.198726 -0.625 0.6875 -0.152099 -0.6875 0.6875 -0.0823152 -0.75 0.6875 -5.37764e-17 -0.8125 0.6875 0.0823152 -0.875 0.6875 0.152099 -0.9375 0.6875 0.198726 -1 0.6875 0.2151 - -0 0.75 1.66533e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 4.16334e-17 -0.25 0.75 0 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -8.32667e-17 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 1.11022e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.2151 -0.0625 0.8125 -0.198726 -0.125 0.8125 -0.152099 -0.1875 0.8125 -0.0823152 -0.25 0.8125 0 -0.3125 0.8125 0.0823152 -0.375 0.8125 0.152099 -0.4375 0.8125 0.198726 -0.5 0.8125 0.2151 -0.5625 0.8125 0.198726 -0.625 0.8125 0.152099 -0.6875 0.8125 0.0823152 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.0823152 -0.875 0.8125 -0.152099 -0.9375 0.8125 -0.198726 -1 0.8125 -0.2151 - -0 0.875 -0.397453 -0.0625 0.875 -0.367199 -0.125 0.875 -0.281042 -0.1875 0.875 -0.152099 -0.25 0.875 0 -0.3125 0.875 0.152099 -0.375 0.875 0.281042 -0.4375 0.875 0.367199 -0.5 0.875 0.397453 -0.5625 0.875 0.367199 -0.625 0.875 0.281042 -0.6875 0.875 0.152099 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.152099 -0.875 0.875 -0.281042 -0.9375 0.875 -0.367199 -1 0.875 -0.397453 - -0 0.9375 -0.519297 -0.0625 0.9375 -0.479768 -0.125 0.9375 -0.367199 -0.1875 0.9375 -0.198726 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.198726 -0.375 0.9375 0.367199 -0.4375 0.9375 0.479768 -0.5 0.9375 0.519297 -0.5625 0.9375 0.479768 -0.625 0.9375 0.367199 -0.6875 0.9375 0.198726 -0.75 0.9375 1.52656e-16 -0.8125 0.9375 -0.198726 -0.875 0.9375 -0.367199 -0.9375 0.9375 -0.479768 -1 0.9375 -0.519297 - -0 1 -0.562083 -0.0625 1 -0.519297 -0.125 1 -0.397453 -0.1875 1 -0.2151 -0.25 1 0 -0.3125 1 0.2151 -0.375 1 0.397453 -0.4375 1 0.519297 -0.5 1 0.562083 -0.5625 1 0.519297 -0.625 1 0.397453 -0.6875 1 0.2151 -0.75 1 1.66533e-16 -0.8125 1 -0.2151 -0.875 1 -0.397453 -0.9375 1 -0.519297 -1 1 -0.562083 - - -0 0 -0.587785 -0.0625 0 -0.543043 -0.125 0 -0.415627 -0.1875 0 -0.224936 -0.25 0 -1.11022e-16 -0.3125 0 0.224936 -0.375 0 0.415627 -0.4375 0 0.543043 -0.5 0 0.587785 -0.5625 0 0.543043 -0.625 0 0.415627 -0.6875 0 0.224936 -0.75 0 5.55112e-17 -0.8125 0 -0.224936 -0.875 0 -0.415627 -0.9375 0 -0.543043 -1 0 -0.587785 - -0 0.0625 -0.543043 -0.0625 0.0625 -0.501706 -0.125 0.0625 -0.383989 -0.1875 0.0625 -0.207813 -0.25 0.0625 -9.36751e-17 -0.3125 0.0625 0.207813 -0.375 0.0625 0.383989 -0.4375 0.0625 0.501706 -0.5 0.0625 0.543043 -0.5625 0.0625 0.501706 -0.625 0.0625 0.383989 -0.6875 0.0625 0.207813 -0.75 0.0625 7.28584e-17 -0.8125 0.0625 -0.207813 -0.875 0.0625 -0.383989 -0.9375 0.0625 -0.501706 -1 0.0625 -0.543043 - -0 0.125 -0.415627 -0.0625 0.125 -0.383989 -0.125 0.125 -0.293893 -0.1875 0.125 -0.159054 -0.25 0.125 -4.85723e-17 -0.3125 0.125 0.159054 -0.375 0.125 0.293893 -0.4375 0.125 0.383989 -0.5 0.125 0.415627 -0.5625 0.125 0.383989 -0.625 0.125 0.293893 -0.6875 0.125 0.159054 -0.75 0.125 6.245e-17 -0.8125 0.125 -0.159054 -0.875 0.125 -0.293893 -0.9375 0.125 -0.383989 -1 0.125 -0.415627 - -0 0.1875 -0.224936 -0.0625 0.1875 -0.207813 -0.125 0.1875 -0.159054 -0.1875 0.1875 -0.0860792 -0.25 0.1875 -2.25514e-17 -0.3125 0.1875 0.0860792 -0.375 0.1875 0.159054 -0.4375 0.1875 0.207813 -0.5 0.1875 0.224936 -0.5625 0.1875 0.207813 -0.625 0.1875 0.159054 -0.6875 0.1875 0.0860792 -0.75 0.1875 3.29597e-17 -0.8125 0.1875 -0.0860792 -0.875 0.1875 -0.159054 -0.9375 0.1875 -0.207813 -1 0.1875 -0.224936 - -0 0.25 -1.11022e-16 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 1.38778e-17 -0.375 0.25 2.77556e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 2.77556e-17 -0.6875 0.25 2.77556e-17 -0.75 0.25 6.16298e-33 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 -1.11022e-16 - -0 0.3125 0.224936 -0.0625 0.3125 0.207813 -0.125 0.3125 0.159054 -0.1875 0.3125 0.0860792 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.0860792 -0.375 0.3125 -0.159054 -0.4375 0.3125 -0.207813 -0.5 0.3125 -0.224936 -0.5625 0.3125 -0.207813 -0.625 0.3125 -0.159054 -0.6875 0.3125 -0.0860792 -0.75 0.3125 -2.77556e-17 -0.8125 0.3125 0.0860792 -0.875 0.3125 0.159054 -0.9375 0.3125 0.207813 -1 0.3125 0.224936 - -0 0.375 0.415627 -0.0625 0.375 0.383989 -0.125 0.375 0.293893 -0.1875 0.375 0.159054 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.159054 -0.375 0.375 -0.293893 -0.4375 0.375 -0.383989 -0.5 0.375 -0.415627 -0.5625 0.375 -0.383989 -0.625 0.375 -0.293893 -0.6875 0.375 -0.159054 -0.75 0.375 -5.55112e-17 -0.8125 0.375 0.159054 -0.875 0.375 0.293893 -0.9375 0.375 0.383989 -1 0.375 0.415627 - -0 0.4375 0.543043 -0.0625 0.4375 0.501706 -0.125 0.4375 0.383989 -0.1875 0.4375 0.207813 -0.25 0.4375 9.71445e-17 -0.3125 0.4375 -0.207813 -0.375 0.4375 -0.383989 -0.4375 0.4375 -0.501706 -0.5 0.4375 -0.543043 -0.5625 0.4375 -0.501706 -0.625 0.4375 -0.383989 -0.6875 0.4375 -0.207813 -0.75 0.4375 -6.93889e-17 -0.8125 0.4375 0.207813 -0.875 0.4375 0.383989 -0.9375 0.4375 0.501706 -1 0.4375 0.543043 - -0 0.5 0.587785 -0.0625 0.5 0.543043 -0.125 0.5 0.415627 -0.1875 0.5 0.224936 -0.25 0.5 1.11022e-16 -0.3125 0.5 -0.224936 -0.375 0.5 -0.415627 -0.4375 0.5 -0.543043 -0.5 0.5 -0.587785 -0.5625 0.5 -0.543043 -0.625 0.5 -0.415627 -0.6875 0.5 -0.224936 -0.75 0.5 -5.55112e-17 -0.8125 0.5 0.224936 -0.875 0.5 0.415627 -0.9375 0.5 0.543043 -1 0.5 0.587785 - -0 0.5625 0.543043 -0.0625 0.5625 0.501706 -0.125 0.5625 0.383989 -0.1875 0.5625 0.207813 -0.25 0.5625 9.71445e-17 -0.3125 0.5625 -0.207813 -0.375 0.5625 -0.383989 -0.4375 0.5625 -0.501706 -0.5 0.5625 -0.543043 -0.5625 0.5625 -0.501706 -0.625 0.5625 -0.383989 -0.6875 0.5625 -0.207813 -0.75 0.5625 -6.93889e-17 -0.8125 0.5625 0.207813 -0.875 0.5625 0.383989 -0.9375 0.5625 0.501706 -1 0.5625 0.543043 - -0 0.625 0.415627 -0.0625 0.625 0.383989 -0.125 0.625 0.293893 -0.1875 0.625 0.159054 -0.25 0.625 5.55112e-17 -0.3125 0.625 -0.159054 -0.375 0.625 -0.293893 -0.4375 0.625 -0.383989 -0.5 0.625 -0.415627 -0.5625 0.625 -0.383989 -0.625 0.625 -0.293893 -0.6875 0.625 -0.159054 -0.75 0.625 -5.55112e-17 -0.8125 0.625 0.159054 -0.875 0.625 0.293893 -0.9375 0.625 0.383989 -1 0.625 0.415627 - -0 0.6875 0.224936 -0.0625 0.6875 0.207813 -0.125 0.6875 0.159054 -0.1875 0.6875 0.0860792 -0.25 0.6875 2.77556e-17 -0.3125 0.6875 -0.0860792 -0.375 0.6875 -0.159054 -0.4375 0.6875 -0.207813 -0.5 0.6875 -0.224936 -0.5625 0.6875 -0.207813 -0.625 0.6875 -0.159054 -0.6875 0.6875 -0.0860792 -0.75 0.6875 -2.77556e-17 -0.8125 0.6875 0.0860792 -0.875 0.6875 0.159054 -0.9375 0.6875 0.207813 -1 0.6875 0.224936 - -0 0.75 5.55112e-17 -0.0625 0.75 1.11022e-16 -0.125 0.75 8.32667e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 0 -0.3125 0.75 -4.16334e-17 -0.375 0.75 -8.32667e-17 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -8.32667e-17 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 1.11022e-16 -1 0.75 5.55112e-17 - -0 0.8125 -0.224936 -0.0625 0.8125 -0.207813 -0.125 0.8125 -0.159054 -0.1875 0.8125 -0.0860792 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.0860792 -0.375 0.8125 0.159054 -0.4375 0.8125 0.207813 -0.5 0.8125 0.224936 -0.5625 0.8125 0.207813 -0.625 0.8125 0.159054 -0.6875 0.8125 0.0860792 -0.75 0.8125 2.77556e-17 -0.8125 0.8125 -0.0860792 -0.875 0.8125 -0.159054 -0.9375 0.8125 -0.207813 -1 0.8125 -0.224936 - -0 0.875 -0.415627 -0.0625 0.875 -0.383989 -0.125 0.875 -0.293893 -0.1875 0.875 -0.159054 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.159054 -0.375 0.875 0.293893 -0.4375 0.875 0.383989 -0.5 0.875 0.415627 -0.5625 0.875 0.383989 -0.625 0.875 0.293893 -0.6875 0.875 0.159054 -0.75 0.875 5.55112e-17 -0.8125 0.875 -0.159054 -0.875 0.875 -0.293893 -0.9375 0.875 -0.383989 -1 0.875 -0.415627 - -0 0.9375 -0.543043 -0.0625 0.9375 -0.501706 -0.125 0.9375 -0.383989 -0.1875 0.9375 -0.207813 -0.25 0.9375 -9.71445e-17 -0.3125 0.9375 0.207813 -0.375 0.9375 0.383989 -0.4375 0.9375 0.501706 -0.5 0.9375 0.543043 -0.5625 0.9375 0.501706 -0.625 0.9375 0.383989 -0.6875 0.9375 0.207813 -0.75 0.9375 6.93889e-17 -0.8125 0.9375 -0.207813 -0.875 0.9375 -0.383989 -0.9375 0.9375 -0.501706 -1 0.9375 -0.543043 - -0 1 -0.587785 -0.0625 1 -0.543043 -0.125 1 -0.415627 -0.1875 1 -0.224936 -0.25 1 -1.11022e-16 -0.3125 1 0.224936 -0.375 1 0.415627 -0.4375 1 0.543043 -0.5 1 0.587785 -0.5625 1 0.543043 -0.625 1 0.415627 -0.6875 1 0.224936 -0.75 1 5.55112e-17 -0.8125 1 -0.224936 -0.875 1 -0.415627 -0.9375 1 -0.543043 -1 1 -0.587785 - - -0 0 -0.612907 -0.0625 0 -0.566252 -0.125 0 -0.433391 -0.1875 0 -0.234549 -0.25 0 -1.11022e-16 -0.3125 0 0.234549 -0.375 0 0.433391 -0.4375 0 0.566252 -0.5 0 0.612907 -0.5625 0 0.566252 -0.625 0 0.433391 -0.6875 0 0.234549 -0.75 0 5.55112e-17 -0.8125 0 -0.234549 -0.875 0 -0.433391 -0.9375 0 -0.566252 -1 0 -0.612907 - -0 0.0625 -0.566252 -0.0625 0.0625 -0.523149 -0.125 0.0625 -0.400401 -0.1875 0.0625 -0.216695 -0.25 0.0625 -1.04083e-16 -0.3125 0.0625 0.216695 -0.375 0.0625 0.400401 -0.4375 0.0625 0.523149 -0.5 0.0625 0.566252 -0.5625 0.0625 0.523149 -0.625 0.0625 0.400401 -0.6875 0.0625 0.216695 -0.75 0.0625 6.245e-17 -0.8125 0.0625 -0.216695 -0.875 0.0625 -0.400401 -0.9375 0.0625 -0.523149 -1 0.0625 -0.566252 - -0 0.125 -0.433391 -0.0625 0.125 -0.400401 -0.125 0.125 -0.306454 -0.1875 0.125 -0.165851 -0.25 0.125 -6.93889e-17 -0.3125 0.125 0.165851 -0.375 0.125 0.306454 -0.4375 0.125 0.400401 -0.5 0.125 0.433391 -0.5625 0.125 0.400401 -0.625 0.125 0.306454 -0.6875 0.125 0.165851 -0.75 0.125 4.16334e-17 -0.8125 0.125 -0.165851 -0.875 0.125 -0.306454 -0.9375 0.125 -0.400401 -1 0.125 -0.433391 - -0 0.1875 -0.234549 -0.0625 0.1875 -0.216695 -0.125 0.1875 -0.165851 -0.1875 0.1875 -0.0897582 -0.25 0.1875 -3.29597e-17 -0.3125 0.1875 0.0897582 -0.375 0.1875 0.165851 -0.4375 0.1875 0.216695 -0.5 0.1875 0.234549 -0.5625 0.1875 0.216695 -0.625 0.1875 0.165851 -0.6875 0.1875 0.0897582 -0.75 0.1875 2.25514e-17 -0.8125 0.1875 -0.0897582 -0.875 0.1875 -0.165851 -0.9375 0.1875 -0.216695 -1 0.1875 -0.234549 - -0 0.25 -1.11022e-16 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 2.77556e-17 -0.6875 0.25 1.38778e-17 -0.75 0.25 6.16298e-33 -0.8125 0.25 -4.16334e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 -1.11022e-16 - -0 0.3125 0.234549 -0.0625 0.3125 0.216695 -0.125 0.3125 0.165851 -0.1875 0.3125 0.0897582 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.0897582 -0.375 0.3125 -0.165851 -0.4375 0.3125 -0.216695 -0.5 0.3125 -0.234549 -0.5625 0.3125 -0.216695 -0.625 0.3125 -0.165851 -0.6875 0.3125 -0.0897582 -0.75 0.3125 -2.77556e-17 -0.8125 0.3125 0.0897582 -0.875 0.3125 0.165851 -0.9375 0.3125 0.216695 -1 0.3125 0.234549 - -0 0.375 0.433391 -0.0625 0.375 0.400401 -0.125 0.375 0.306454 -0.1875 0.375 0.165851 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.165851 -0.375 0.375 -0.306454 -0.4375 0.375 -0.400401 -0.5 0.375 -0.433391 -0.5625 0.375 -0.400401 -0.625 0.375 -0.306454 -0.6875 0.375 -0.165851 -0.75 0.375 -5.55112e-17 -0.8125 0.375 0.165851 -0.875 0.375 0.306454 -0.9375 0.375 0.400401 -1 0.375 0.433391 - -0 0.4375 0.566252 -0.0625 0.4375 0.523149 -0.125 0.4375 0.400401 -0.1875 0.4375 0.216695 -0.25 0.4375 9.71445e-17 -0.3125 0.4375 -0.216695 -0.375 0.4375 -0.400401 -0.4375 0.4375 -0.523149 -0.5 0.4375 -0.566252 -0.5625 0.4375 -0.523149 -0.625 0.4375 -0.400401 -0.6875 0.4375 -0.216695 -0.75 0.4375 -6.93889e-17 -0.8125 0.4375 0.216695 -0.875 0.4375 0.400401 -0.9375 0.4375 0.523149 -1 0.4375 0.566252 - -0 0.5 0.612907 -0.0625 0.5 0.566252 -0.125 0.5 0.433391 -0.1875 0.5 0.234549 -0.25 0.5 1.11022e-16 -0.3125 0.5 -0.234549 -0.375 0.5 -0.433391 -0.4375 0.5 -0.566252 -0.5 0.5 -0.612907 -0.5625 0.5 -0.566252 -0.625 0.5 -0.433391 -0.6875 0.5 -0.234549 -0.75 0.5 -5.55112e-17 -0.8125 0.5 0.234549 -0.875 0.5 0.433391 -0.9375 0.5 0.566252 -1 0.5 0.612907 - -0 0.5625 0.566252 -0.0625 0.5625 0.523149 -0.125 0.5625 0.400401 -0.1875 0.5625 0.216695 -0.25 0.5625 9.71445e-17 -0.3125 0.5625 -0.216695 -0.375 0.5625 -0.400401 -0.4375 0.5625 -0.523149 -0.5 0.5625 -0.566252 -0.5625 0.5625 -0.523149 -0.625 0.5625 -0.400401 -0.6875 0.5625 -0.216695 -0.75 0.5625 -6.93889e-17 -0.8125 0.5625 0.216695 -0.875 0.5625 0.400401 -0.9375 0.5625 0.523149 -1 0.5625 0.566252 - -0 0.625 0.433391 -0.0625 0.625 0.400401 -0.125 0.625 0.306454 -0.1875 0.625 0.165851 -0.25 0.625 5.55112e-17 -0.3125 0.625 -0.165851 -0.375 0.625 -0.306454 -0.4375 0.625 -0.400401 -0.5 0.625 -0.433391 -0.5625 0.625 -0.400401 -0.625 0.625 -0.306454 -0.6875 0.625 -0.165851 -0.75 0.625 -5.55112e-17 -0.8125 0.625 0.165851 -0.875 0.625 0.306454 -0.9375 0.625 0.400401 -1 0.625 0.433391 - -0 0.6875 0.234549 -0.0625 0.6875 0.216695 -0.125 0.6875 0.165851 -0.1875 0.6875 0.0897582 -0.25 0.6875 2.77556e-17 -0.3125 0.6875 -0.0897582 -0.375 0.6875 -0.165851 -0.4375 0.6875 -0.216695 -0.5 0.6875 -0.234549 -0.5625 0.6875 -0.216695 -0.625 0.6875 -0.165851 -0.6875 0.6875 -0.0897582 -0.75 0.6875 -2.77556e-17 -0.8125 0.6875 0.0897582 -0.875 0.6875 0.165851 -0.9375 0.6875 0.216695 -1 0.6875 0.234549 - -0 0.75 5.55112e-17 -0.0625 0.75 1.66533e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 4.16334e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -4.16334e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -5.55112e-17 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 8.32667e-17 -0.9375 0.75 1.11022e-16 -1 0.75 5.55112e-17 - -0 0.8125 -0.234549 -0.0625 0.8125 -0.216695 -0.125 0.8125 -0.165851 -0.1875 0.8125 -0.0897582 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.0897582 -0.375 0.8125 0.165851 -0.4375 0.8125 0.216695 -0.5 0.8125 0.234549 -0.5625 0.8125 0.216695 -0.625 0.8125 0.165851 -0.6875 0.8125 0.0897582 -0.75 0.8125 2.77556e-17 -0.8125 0.8125 -0.0897582 -0.875 0.8125 -0.165851 -0.9375 0.8125 -0.216695 -1 0.8125 -0.234549 - -0 0.875 -0.433391 -0.0625 0.875 -0.400401 -0.125 0.875 -0.306454 -0.1875 0.875 -0.165851 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.165851 -0.375 0.875 0.306454 -0.4375 0.875 0.400401 -0.5 0.875 0.433391 -0.5625 0.875 0.400401 -0.625 0.875 0.306454 -0.6875 0.875 0.165851 -0.75 0.875 5.55112e-17 -0.8125 0.875 -0.165851 -0.875 0.875 -0.306454 -0.9375 0.875 -0.400401 -1 0.875 -0.433391 - -0 0.9375 -0.566252 -0.0625 0.9375 -0.523149 -0.125 0.9375 -0.400401 -0.1875 0.9375 -0.216695 -0.25 0.9375 -9.71445e-17 -0.3125 0.9375 0.216695 -0.375 0.9375 0.400401 -0.4375 0.9375 0.523149 -0.5 0.9375 0.566252 -0.5625 0.9375 0.523149 -0.625 0.9375 0.400401 -0.6875 0.9375 0.216695 -0.75 0.9375 6.93889e-17 -0.8125 0.9375 -0.216695 -0.875 0.9375 -0.400401 -0.9375 0.9375 -0.523149 -1 0.9375 -0.566252 - -0 1 -0.612907 -0.0625 1 -0.566252 -0.125 1 -0.433391 -0.1875 1 -0.234549 -0.25 1 -1.11022e-16 -0.3125 1 0.234549 -0.375 1 0.433391 -0.4375 1 0.566252 -0.5 1 0.612907 -0.5625 1 0.566252 -0.625 1 0.433391 -0.6875 1 0.234549 -0.75 1 5.55112e-17 -0.8125 1 -0.234549 -0.875 1 -0.433391 -0.9375 1 -0.566252 -1 1 -0.612907 - - -0 0 -0.637424 -0.0625 0 -0.588903 -0.125 0 -0.450727 -0.1875 0 -0.243932 -0.25 0 -5.55112e-17 -0.3125 0 0.243932 -0.375 0 0.450727 -0.4375 0 0.588903 -0.5 0 0.637424 -0.5625 0 0.588903 -0.625 0 0.450727 -0.6875 0 0.243932 -0.75 0 1.11022e-16 -0.8125 0 -0.243932 -0.875 0 -0.450727 -0.9375 0 -0.588903 -1 0 -0.637424 - -0 0.0625 -0.588903 -0.0625 0.0625 -0.544075 -0.125 0.0625 -0.416417 -0.1875 0.0625 -0.225363 -0.25 0.0625 -6.245e-17 -0.3125 0.0625 0.225363 -0.375 0.0625 0.416417 -0.4375 0.0625 0.544075 -0.5 0.0625 0.588903 -0.5625 0.0625 0.544075 -0.625 0.0625 0.416417 -0.6875 0.0625 0.225363 -0.75 0.0625 1.04083e-16 -0.8125 0.0625 -0.225363 -0.875 0.0625 -0.416417 -0.9375 0.0625 -0.544075 -1 0.0625 -0.588903 - -0 0.125 -0.450727 -0.0625 0.125 -0.416417 -0.125 0.125 -0.318712 -0.1875 0.125 -0.172486 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.172486 -0.375 0.125 0.318712 -0.4375 0.125 0.416417 -0.5 0.125 0.450727 -0.5625 0.125 0.416417 -0.625 0.125 0.318712 -0.6875 0.125 0.172486 -0.75 0.125 6.93889e-17 -0.8125 0.125 -0.172486 -0.875 0.125 -0.318712 -0.9375 0.125 -0.416417 -1 0.125 -0.450727 - -0 0.1875 -0.243932 -0.0625 0.1875 -0.225363 -0.125 0.1875 -0.172486 -0.1875 0.1875 -0.0933486 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.0933486 -0.375 0.1875 0.172486 -0.4375 0.1875 0.225363 -0.5 0.1875 0.243932 -0.5625 0.1875 0.225363 -0.625 0.1875 0.172486 -0.6875 0.1875 0.0933486 -0.75 0.1875 3.46945e-17 -0.8125 0.1875 -0.0933486 -0.875 0.1875 -0.172486 -0.9375 0.1875 -0.225363 -1 0.1875 -0.243932 - -0 0.25 -5.55112e-17 -0.0625 0.25 -1.11022e-16 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -4.16334e-17 -0.25 0.25 0 -0.3125 0.25 4.16334e-17 -0.375 0.25 8.32667e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 5.55112e-17 -0.6875 0.25 1.38778e-17 -0.75 0.25 0 -0.8125 0.25 -1.38778e-17 -0.875 0.25 0 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.243932 -0.0625 0.3125 0.225363 -0.125 0.3125 0.172486 -0.1875 0.3125 0.0933486 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.0933486 -0.375 0.3125 -0.172486 -0.4375 0.3125 -0.225363 -0.5 0.3125 -0.243932 -0.5625 0.3125 -0.225363 -0.625 0.3125 -0.172486 -0.6875 0.3125 -0.0933486 -0.75 0.3125 -4.16334e-17 -0.8125 0.3125 0.0933486 -0.875 0.3125 0.172486 -0.9375 0.3125 0.225363 -1 0.3125 0.243932 - -0 0.375 0.450727 -0.0625 0.375 0.416417 -0.125 0.375 0.318712 -0.1875 0.375 0.172486 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.172486 -0.375 0.375 -0.318712 -0.4375 0.375 -0.416417 -0.5 0.375 -0.450727 -0.5625 0.375 -0.416417 -0.625 0.375 -0.318712 -0.6875 0.375 -0.172486 -0.75 0.375 -8.32667e-17 -0.8125 0.375 0.172486 -0.875 0.375 0.318712 -0.9375 0.375 0.416417 -1 0.375 0.450727 - -0 0.4375 0.588903 -0.0625 0.4375 0.544075 -0.125 0.4375 0.416417 -0.1875 0.4375 0.225363 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.225363 -0.375 0.4375 -0.416417 -0.4375 0.4375 -0.544075 -0.5 0.4375 -0.588903 -0.5625 0.4375 -0.544075 -0.625 0.4375 -0.416417 -0.6875 0.4375 -0.225363 -0.75 0.4375 -1.11022e-16 -0.8125 0.4375 0.225363 -0.875 0.4375 0.416417 -0.9375 0.4375 0.544075 -1 0.4375 0.588903 - -0 0.5 0.637424 -0.0625 0.5 0.588903 -0.125 0.5 0.450727 -0.1875 0.5 0.243932 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.243932 -0.375 0.5 -0.450727 -0.4375 0.5 -0.588903 -0.5 0.5 -0.637424 -0.5625 0.5 -0.588903 -0.625 0.5 -0.450727 -0.6875 0.5 -0.243932 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.243932 -0.875 0.5 0.450727 -0.9375 0.5 0.588903 -1 0.5 0.637424 - -0 0.5625 0.588903 -0.0625 0.5625 0.544075 -0.125 0.5625 0.416417 -0.1875 0.5625 0.225363 -0.25 0.5625 5.55112e-17 -0.3125 0.5625 -0.225363 -0.375 0.5625 -0.416417 -0.4375 0.5625 -0.544075 -0.5 0.5625 -0.588903 -0.5625 0.5625 -0.544075 -0.625 0.5625 -0.416417 -0.6875 0.5625 -0.225363 -0.75 0.5625 -1.11022e-16 -0.8125 0.5625 0.225363 -0.875 0.5625 0.416417 -0.9375 0.5625 0.544075 -1 0.5625 0.588903 - -0 0.625 0.450727 -0.0625 0.625 0.416417 -0.125 0.625 0.318712 -0.1875 0.625 0.172486 -0.25 0.625 2.77556e-17 -0.3125 0.625 -0.172486 -0.375 0.625 -0.318712 -0.4375 0.625 -0.416417 -0.5 0.625 -0.450727 -0.5625 0.625 -0.416417 -0.625 0.625 -0.318712 -0.6875 0.625 -0.172486 -0.75 0.625 -8.32667e-17 -0.8125 0.625 0.172486 -0.875 0.625 0.318712 -0.9375 0.625 0.416417 -1 0.625 0.450727 - -0 0.6875 0.243932 -0.0625 0.6875 0.225363 -0.125 0.6875 0.172486 -0.1875 0.6875 0.0933486 -0.25 0.6875 1.21431e-17 -0.3125 0.6875 -0.0933486 -0.375 0.6875 -0.172486 -0.4375 0.6875 -0.225363 -0.5 0.6875 -0.243932 -0.5625 0.6875 -0.225363 -0.625 0.6875 -0.172486 -0.6875 0.6875 -0.0933486 -0.75 0.6875 -4.33681e-17 -0.8125 0.6875 0.0933486 -0.875 0.6875 0.172486 -0.9375 0.6875 0.225363 -1 0.6875 0.243932 - -0 0.75 1.11022e-16 -0.0625 0.75 5.55112e-17 -0.125 0.75 8.32667e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -5.55112e-17 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -8.32667e-17 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 1.11022e-16 -1 0.75 1.11022e-16 - -0 0.8125 -0.243932 -0.0625 0.8125 -0.225363 -0.125 0.8125 -0.172486 -0.1875 0.8125 -0.0933486 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.0933486 -0.375 0.8125 0.172486 -0.4375 0.8125 0.225363 -0.5 0.8125 0.243932 -0.5625 0.8125 0.225363 -0.625 0.8125 0.172486 -0.6875 0.8125 0.0933486 -0.75 0.8125 4.16334e-17 -0.8125 0.8125 -0.0933486 -0.875 0.8125 -0.172486 -0.9375 0.8125 -0.225363 -1 0.8125 -0.243932 - -0 0.875 -0.450727 -0.0625 0.875 -0.416417 -0.125 0.875 -0.318712 -0.1875 0.875 -0.172486 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.172486 -0.375 0.875 0.318712 -0.4375 0.875 0.416417 -0.5 0.875 0.450727 -0.5625 0.875 0.416417 -0.625 0.875 0.318712 -0.6875 0.875 0.172486 -0.75 0.875 8.32667e-17 -0.8125 0.875 -0.172486 -0.875 0.875 -0.318712 -0.9375 0.875 -0.416417 -1 0.875 -0.450727 - -0 0.9375 -0.588903 -0.0625 0.9375 -0.544075 -0.125 0.9375 -0.416417 -0.1875 0.9375 -0.225363 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.225363 -0.375 0.9375 0.416417 -0.4375 0.9375 0.544075 -0.5 0.9375 0.588903 -0.5625 0.9375 0.544075 -0.625 0.9375 0.416417 -0.6875 0.9375 0.225363 -0.75 0.9375 1.11022e-16 -0.8125 0.9375 -0.225363 -0.875 0.9375 -0.416417 -0.9375 0.9375 -0.544075 -1 0.9375 -0.588903 - -0 1 -0.637424 -0.0625 1 -0.588903 -0.125 1 -0.450727 -0.1875 1 -0.243932 -0.25 1 -5.55112e-17 -0.3125 1 0.243932 -0.375 1 0.450727 -0.4375 1 0.588903 -0.5 1 0.637424 -0.5625 1 0.588903 -0.625 1 0.450727 -0.6875 1 0.243932 -0.75 1 1.11022e-16 -0.8125 1 -0.243932 -0.875 1 -0.450727 -0.9375 1 -0.588903 -1 1 -0.637424 - - -0 0 -0.661312 -0.0625 0 -0.610972 -0.125 0 -0.467618 -0.1875 0 -0.253073 -0.25 0 0 -0.3125 0 0.253073 -0.375 0 0.467618 -0.4375 0 0.610972 -0.5 0 0.661312 -0.5625 0 0.610972 -0.625 0 0.467618 -0.6875 0 0.253073 -0.75 0 1.66533e-16 -0.8125 0 -0.253073 -0.875 0 -0.467618 -0.9375 0 -0.610972 -1 0 -0.661312 - -0 0.0625 -0.610972 -0.0625 0.0625 -0.564465 -0.125 0.0625 -0.432023 -0.1875 0.0625 -0.233809 -0.25 0.0625 -6.93889e-18 -0.3125 0.0625 0.233809 -0.375 0.0625 0.432023 -0.4375 0.0625 0.564465 -0.5 0.0625 0.610972 -0.5625 0.0625 0.564465 -0.625 0.0625 0.432023 -0.6875 0.0625 0.233809 -0.75 0.0625 1.59595e-16 -0.8125 0.0625 -0.233809 -0.875 0.0625 -0.432023 -0.9375 0.0625 -0.564465 -1 0.0625 -0.610972 - -0 0.125 -0.467618 -0.0625 0.125 -0.432023 -0.125 0.125 -0.330656 -0.1875 0.125 -0.17895 -0.25 0.125 1.38778e-17 -0.3125 0.125 0.17895 -0.375 0.125 0.330656 -0.4375 0.125 0.432023 -0.5 0.125 0.467618 -0.5625 0.125 0.432023 -0.625 0.125 0.330656 -0.6875 0.125 0.17895 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.17895 -0.875 0.125 -0.330656 -0.9375 0.125 -0.432023 -1 0.125 -0.467618 - -0 0.1875 -0.253073 -0.0625 0.1875 -0.233809 -0.125 0.1875 -0.17895 -0.1875 0.1875 -0.0968469 -0.25 0.1875 -6.93889e-18 -0.3125 0.1875 0.0968469 -0.375 0.1875 0.17895 -0.4375 0.1875 0.233809 -0.5 0.1875 0.253073 -0.5625 0.1875 0.233809 -0.625 0.1875 0.17895 -0.6875 0.1875 0.0968469 -0.75 0.1875 7.63278e-17 -0.8125 0.1875 -0.0968469 -0.875 0.1875 -0.17895 -0.9375 0.1875 -0.233809 -1 0.1875 -0.253073 - -0 0.25 0 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 8.32667e-17 -0.6875 0.25 2.77556e-17 -0.75 0.25 0 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 0 - -0 0.3125 0.253073 -0.0625 0.3125 0.233809 -0.125 0.3125 0.17895 -0.1875 0.3125 0.0968469 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.0968469 -0.375 0.3125 -0.17895 -0.4375 0.3125 -0.233809 -0.5 0.3125 -0.253073 -0.5625 0.3125 -0.233809 -0.625 0.3125 -0.17895 -0.6875 0.3125 -0.0968469 -0.75 0.3125 -6.93889e-17 -0.8125 0.3125 0.0968469 -0.875 0.3125 0.17895 -0.9375 0.3125 0.233809 -1 0.3125 0.253073 - -0 0.375 0.467618 -0.0625 0.375 0.432023 -0.125 0.375 0.330656 -0.1875 0.375 0.17895 -0.25 0.375 0 -0.3125 0.375 -0.17895 -0.375 0.375 -0.330656 -0.4375 0.375 -0.432023 -0.5 0.375 -0.467618 -0.5625 0.375 -0.432023 -0.625 0.375 -0.330656 -0.6875 0.375 -0.17895 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.17895 -0.875 0.375 0.330656 -0.9375 0.375 0.432023 -1 0.375 0.467618 - -0 0.4375 0.610972 -0.0625 0.4375 0.564465 -0.125 0.4375 0.432023 -0.1875 0.4375 0.233809 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.233809 -0.375 0.4375 -0.432023 -0.4375 0.4375 -0.564465 -0.5 0.4375 -0.610972 -0.5625 0.4375 -0.564465 -0.625 0.4375 -0.432023 -0.6875 0.4375 -0.233809 -0.75 0.4375 -1.52656e-16 -0.8125 0.4375 0.233809 -0.875 0.4375 0.432023 -0.9375 0.4375 0.564465 -1 0.4375 0.610972 - -0 0.5 0.661312 -0.0625 0.5 0.610972 -0.125 0.5 0.467618 -0.1875 0.5 0.253073 -0.25 0.5 0 -0.3125 0.5 -0.253073 -0.375 0.5 -0.467618 -0.4375 0.5 -0.610972 -0.5 0.5 -0.661312 -0.5625 0.5 -0.610972 -0.625 0.5 -0.467618 -0.6875 0.5 -0.253073 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.253073 -0.875 0.5 0.467618 -0.9375 0.5 0.610972 -1 0.5 0.661312 - -0 0.5625 0.610972 -0.0625 0.5625 0.564465 -0.125 0.5625 0.432023 -0.1875 0.5625 0.233809 -0.25 0.5625 1.38778e-17 -0.3125 0.5625 -0.233809 -0.375 0.5625 -0.432023 -0.4375 0.5625 -0.564465 -0.5 0.5625 -0.610972 -0.5625 0.5625 -0.564465 -0.625 0.5625 -0.432023 -0.6875 0.5625 -0.233809 -0.75 0.5625 -1.52656e-16 -0.8125 0.5625 0.233809 -0.875 0.5625 0.432023 -0.9375 0.5625 0.564465 -1 0.5625 0.610972 - -0 0.625 0.467618 -0.0625 0.625 0.432023 -0.125 0.625 0.330656 -0.1875 0.625 0.17895 -0.25 0.625 6.16298e-33 -0.3125 0.625 -0.17895 -0.375 0.625 -0.330656 -0.4375 0.625 -0.432023 -0.5 0.625 -0.467618 -0.5625 0.625 -0.432023 -0.625 0.625 -0.330656 -0.6875 0.625 -0.17895 -0.75 0.625 -1.11022e-16 -0.8125 0.625 0.17895 -0.875 0.625 0.330656 -0.9375 0.625 0.432023 -1 0.625 0.467618 - -0 0.6875 0.253073 -0.0625 0.6875 0.233809 -0.125 0.6875 0.17895 -0.1875 0.6875 0.0968469 -0.25 0.6875 1.38778e-17 -0.3125 0.6875 -0.0968469 -0.375 0.6875 -0.17895 -0.4375 0.6875 -0.233809 -0.5 0.6875 -0.253073 -0.5625 0.6875 -0.233809 -0.625 0.6875 -0.17895 -0.6875 0.6875 -0.0968469 -0.75 0.6875 -6.93889e-17 -0.8125 0.6875 0.0968469 -0.875 0.6875 0.17895 -0.9375 0.6875 0.233809 -1 0.6875 0.253073 - -0 0.75 1.66533e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -5.55112e-17 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 8.32667e-17 -0.9375 0.75 1.11022e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.253073 -0.0625 0.8125 -0.233809 -0.125 0.8125 -0.17895 -0.1875 0.8125 -0.0968469 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.0968469 -0.375 0.8125 0.17895 -0.4375 0.8125 0.233809 -0.5 0.8125 0.253073 -0.5625 0.8125 0.233809 -0.625 0.8125 0.17895 -0.6875 0.8125 0.0968469 -0.75 0.8125 6.93889e-17 -0.8125 0.8125 -0.0968469 -0.875 0.8125 -0.17895 -0.9375 0.8125 -0.233809 -1 0.8125 -0.253073 - -0 0.875 -0.467618 -0.0625 0.875 -0.432023 -0.125 0.875 -0.330656 -0.1875 0.875 -0.17895 -0.25 0.875 6.16298e-33 -0.3125 0.875 0.17895 -0.375 0.875 0.330656 -0.4375 0.875 0.432023 -0.5 0.875 0.467618 -0.5625 0.875 0.432023 -0.625 0.875 0.330656 -0.6875 0.875 0.17895 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.17895 -0.875 0.875 -0.330656 -0.9375 0.875 -0.432023 -1 0.875 -0.467618 - -0 0.9375 -0.610972 -0.0625 0.9375 -0.564465 -0.125 0.9375 -0.432023 -0.1875 0.9375 -0.233809 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.233809 -0.375 0.9375 0.432023 -0.4375 0.9375 0.564465 -0.5 0.9375 0.610972 -0.5625 0.9375 0.564465 -0.625 0.9375 0.432023 -0.6875 0.9375 0.233809 -0.75 0.9375 1.52656e-16 -0.8125 0.9375 -0.233809 -0.875 0.9375 -0.432023 -0.9375 0.9375 -0.564465 -1 0.9375 -0.610972 - -0 1 -0.661312 -0.0625 1 -0.610972 -0.125 1 -0.467618 -0.1875 1 -0.253073 -0.25 1 0 -0.3125 1 0.253073 -0.375 1 0.467618 -0.4375 1 0.610972 -0.5 1 0.661312 -0.5625 1 0.610972 -0.625 1 0.467618 -0.6875 1 0.253073 -0.75 1 1.66533e-16 -0.8125 1 -0.253073 -0.875 1 -0.467618 -0.9375 1 -0.610972 -1 1 -0.661312 - - -0 0 -0.684547 -0.0625 0 -0.632439 -0.125 0 -0.484048 -0.1875 0 -0.261965 -0.25 0 -5.55112e-17 -0.3125 0 0.261965 -0.375 0 0.484048 -0.4375 0 0.632439 -0.5 0 0.684547 -0.5625 0 0.632439 -0.625 0 0.484048 -0.6875 0 0.261965 -0.75 0 1.11022e-16 -0.8125 0 -0.261965 -0.875 0 -0.484048 -0.9375 0 -0.632439 -1 0 -0.684547 - -0 0.0625 -0.632439 -0.0625 0.0625 -0.584298 -0.125 0.0625 -0.447202 -0.1875 0.0625 -0.242024 -0.25 0.0625 -6.245e-17 -0.3125 0.0625 0.242024 -0.375 0.0625 0.447202 -0.4375 0.0625 0.584298 -0.5 0.0625 0.632439 -0.5625 0.0625 0.584298 -0.625 0.0625 0.447202 -0.6875 0.0625 0.242024 -0.75 0.0625 1.04083e-16 -0.8125 0.0625 -0.242024 -0.875 0.0625 -0.447202 -0.9375 0.0625 -0.584298 -1 0.0625 -0.632439 - -0 0.125 -0.484048 -0.0625 0.125 -0.447202 -0.125 0.125 -0.342274 -0.1875 0.125 -0.185237 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.185237 -0.375 0.125 0.342274 -0.4375 0.125 0.447202 -0.5 0.125 0.484048 -0.5625 0.125 0.447202 -0.625 0.125 0.342274 -0.6875 0.125 0.185237 -0.75 0.125 6.93889e-17 -0.8125 0.125 -0.185237 -0.875 0.125 -0.342274 -0.9375 0.125 -0.447202 -1 0.125 -0.484048 - -0 0.1875 -0.261965 -0.0625 0.1875 -0.242024 -0.125 0.1875 -0.185237 -0.1875 0.1875 -0.10025 -0.25 0.1875 -3.46945e-17 -0.3125 0.1875 0.10025 -0.375 0.1875 0.185237 -0.4375 0.1875 0.242024 -0.5 0.1875 0.261965 -0.5625 0.1875 0.242024 -0.625 0.1875 0.185237 -0.6875 0.1875 0.10025 -0.75 0.1875 4.85723e-17 -0.8125 0.1875 -0.10025 -0.875 0.1875 -0.185237 -0.9375 0.1875 -0.242024 -1 0.1875 -0.261965 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -2.77556e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 8.32667e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 2.77556e-17 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 -8.32667e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.261965 -0.0625 0.3125 0.242024 -0.125 0.3125 0.185237 -0.1875 0.3125 0.10025 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.10025 -0.375 0.3125 -0.185237 -0.4375 0.3125 -0.242024 -0.5 0.3125 -0.261965 -0.5625 0.3125 -0.242024 -0.625 0.3125 -0.185237 -0.6875 0.3125 -0.10025 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.10025 -0.875 0.3125 0.185237 -0.9375 0.3125 0.242024 -1 0.3125 0.261965 - -0 0.375 0.484048 -0.0625 0.375 0.447202 -0.125 0.375 0.342274 -0.1875 0.375 0.185237 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.185237 -0.375 0.375 -0.342274 -0.4375 0.375 -0.447202 -0.5 0.375 -0.484048 -0.5625 0.375 -0.447202 -0.625 0.375 -0.342274 -0.6875 0.375 -0.185237 -0.75 0.375 -8.32667e-17 -0.8125 0.375 0.185237 -0.875 0.375 0.342274 -0.9375 0.375 0.447202 -1 0.375 0.484048 - -0 0.4375 0.632439 -0.0625 0.4375 0.584298 -0.125 0.4375 0.447202 -0.1875 0.4375 0.242024 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.242024 -0.375 0.4375 -0.447202 -0.4375 0.4375 -0.584298 -0.5 0.4375 -0.632439 -0.5625 0.4375 -0.584298 -0.625 0.4375 -0.447202 -0.6875 0.4375 -0.242024 -0.75 0.4375 -1.11022e-16 -0.8125 0.4375 0.242024 -0.875 0.4375 0.447202 -0.9375 0.4375 0.584298 -1 0.4375 0.632439 - -0 0.5 0.684547 -0.0625 0.5 0.632439 -0.125 0.5 0.484048 -0.1875 0.5 0.261965 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.261965 -0.375 0.5 -0.484048 -0.4375 0.5 -0.632439 -0.5 0.5 -0.684547 -0.5625 0.5 -0.632439 -0.625 0.5 -0.484048 -0.6875 0.5 -0.261965 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.261965 -0.875 0.5 0.484048 -0.9375 0.5 0.632439 -1 0.5 0.684547 - -0 0.5625 0.632439 -0.0625 0.5625 0.584298 -0.125 0.5625 0.447202 -0.1875 0.5625 0.242024 -0.25 0.5625 5.55112e-17 -0.3125 0.5625 -0.242024 -0.375 0.5625 -0.447202 -0.4375 0.5625 -0.584298 -0.5 0.5625 -0.632439 -0.5625 0.5625 -0.584298 -0.625 0.5625 -0.447202 -0.6875 0.5625 -0.242024 -0.75 0.5625 -1.11022e-16 -0.8125 0.5625 0.242024 -0.875 0.5625 0.447202 -0.9375 0.5625 0.584298 -1 0.5625 0.632439 - -0 0.625 0.484048 -0.0625 0.625 0.447202 -0.125 0.625 0.342274 -0.1875 0.625 0.185237 -0.25 0.625 2.77556e-17 -0.3125 0.625 -0.185237 -0.375 0.625 -0.342274 -0.4375 0.625 -0.447202 -0.5 0.625 -0.484048 -0.5625 0.625 -0.447202 -0.625 0.625 -0.342274 -0.6875 0.625 -0.185237 -0.75 0.625 -8.32667e-17 -0.8125 0.625 0.185237 -0.875 0.625 0.342274 -0.9375 0.625 0.447202 -1 0.625 0.484048 - -0 0.6875 0.261965 -0.0625 0.6875 0.242024 -0.125 0.6875 0.185237 -0.1875 0.6875 0.10025 -0.25 0.6875 2.77556e-17 -0.3125 0.6875 -0.10025 -0.375 0.6875 -0.185237 -0.4375 0.6875 -0.242024 -0.5 0.6875 -0.261965 -0.5625 0.6875 -0.242024 -0.625 0.6875 -0.185237 -0.6875 0.6875 -0.10025 -0.75 0.6875 -5.55112e-17 -0.8125 0.6875 0.10025 -0.875 0.6875 0.185237 -0.9375 0.6875 0.242024 -1 0.6875 0.261965 - -0 0.75 1.11022e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -8.32667e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 1.11022e-16 -1 0.75 1.11022e-16 - -0 0.8125 -0.261965 -0.0625 0.8125 -0.242024 -0.125 0.8125 -0.185237 -0.1875 0.8125 -0.10025 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.10025 -0.375 0.8125 0.185237 -0.4375 0.8125 0.242024 -0.5 0.8125 0.261965 -0.5625 0.8125 0.242024 -0.625 0.8125 0.185237 -0.6875 0.8125 0.10025 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.10025 -0.875 0.8125 -0.185237 -0.9375 0.8125 -0.242024 -1 0.8125 -0.261965 - -0 0.875 -0.484048 -0.0625 0.875 -0.447202 -0.125 0.875 -0.342274 -0.1875 0.875 -0.185237 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.185237 -0.375 0.875 0.342274 -0.4375 0.875 0.447202 -0.5 0.875 0.484048 -0.5625 0.875 0.447202 -0.625 0.875 0.342274 -0.6875 0.875 0.185237 -0.75 0.875 8.32667e-17 -0.8125 0.875 -0.185237 -0.875 0.875 -0.342274 -0.9375 0.875 -0.447202 -1 0.875 -0.484048 - -0 0.9375 -0.632439 -0.0625 0.9375 -0.584298 -0.125 0.9375 -0.447202 -0.1875 0.9375 -0.242024 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.242024 -0.375 0.9375 0.447202 -0.4375 0.9375 0.584298 -0.5 0.9375 0.632439 -0.5625 0.9375 0.584298 -0.625 0.9375 0.447202 -0.6875 0.9375 0.242024 -0.75 0.9375 1.11022e-16 -0.8125 0.9375 -0.242024 -0.875 0.9375 -0.447202 -0.9375 0.9375 -0.584298 -1 0.9375 -0.632439 - -0 1 -0.684547 -0.0625 1 -0.632439 -0.125 1 -0.484048 -0.1875 1 -0.261965 -0.25 1 -5.55112e-17 -0.3125 1 0.261965 -0.375 1 0.484048 -0.4375 1 0.632439 -0.5 1 0.684547 -0.5625 1 0.632439 -0.625 1 0.484048 -0.6875 1 0.261965 -0.75 1 1.11022e-16 -0.8125 1 -0.261965 -0.875 1 -0.484048 -0.9375 1 -0.632439 -1 1 -0.684547 - - -0 0 -0.707107 -0.0625 0 -0.653281 -0.125 0 -0.5 -0.1875 0 -0.270598 -0.25 0 -5.55112e-17 -0.3125 0 0.270598 -0.375 0 0.5 -0.4375 0 0.653281 -0.5 0 0.707107 -0.5625 0 0.653281 -0.625 0 0.5 -0.6875 0 0.270598 -0.75 0 1.11022e-16 -0.8125 0 -0.270598 -0.875 0 -0.5 -0.9375 0 -0.653281 -1 0 -0.707107 - -0 0.0625 -0.653281 -0.0625 0.0625 -0.603553 -0.125 0.0625 -0.46194 -0.1875 0.0625 -0.25 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.25 -0.375 0.0625 0.46194 -0.4375 0.0625 0.603553 -0.5 0.0625 0.653281 -0.5625 0.0625 0.603553 -0.625 0.0625 0.46194 -0.6875 0.0625 0.25 -0.75 0.0625 1.17961e-16 -0.8125 0.0625 -0.25 -0.875 0.0625 -0.46194 -0.9375 0.0625 -0.603553 -1 0.0625 -0.653281 - -0 0.125 -0.5 -0.0625 0.125 -0.46194 -0.125 0.125 -0.353553 -0.1875 0.125 -0.191342 -0.25 0.125 -1.38778e-17 -0.3125 0.125 0.191342 -0.375 0.125 0.353553 -0.4375 0.125 0.46194 -0.5 0.125 0.5 -0.5625 0.125 0.46194 -0.625 0.125 0.353553 -0.6875 0.125 0.191342 -0.75 0.125 9.71445e-17 -0.8125 0.125 -0.191342 -0.875 0.125 -0.353553 -0.9375 0.125 -0.46194 -1 0.125 -0.5 - -0 0.1875 -0.270598 -0.0625 0.1875 -0.25 -0.125 0.1875 -0.191342 -0.1875 0.1875 -0.103553 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.103553 -0.375 0.1875 0.191342 -0.4375 0.1875 0.25 -0.5 0.1875 0.270598 -0.5625 0.1875 0.25 -0.625 0.1875 0.191342 -0.6875 0.1875 0.103553 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.103553 -0.875 0.1875 -0.191342 -0.9375 0.1875 -0.25 -1 0.1875 -0.270598 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -8.32667e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 8.32667e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 5.55112e-17 -0.6875 0.25 5.55112e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -5.55112e-17 -0.875 0.25 0 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.270598 -0.0625 0.3125 0.25 -0.125 0.3125 0.191342 -0.1875 0.3125 0.103553 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.103553 -0.375 0.3125 -0.191342 -0.4375 0.3125 -0.25 -0.5 0.3125 -0.270598 -0.5625 0.3125 -0.25 -0.625 0.3125 -0.191342 -0.6875 0.3125 -0.103553 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.103553 -0.875 0.3125 0.191342 -0.9375 0.3125 0.25 -1 0.3125 0.270598 - -0 0.375 0.5 -0.0625 0.375 0.46194 -0.125 0.375 0.353553 -0.1875 0.375 0.191342 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.191342 -0.375 0.375 -0.353553 -0.4375 0.375 -0.46194 -0.5 0.375 -0.5 -0.5625 0.375 -0.46194 -0.625 0.375 -0.353553 -0.6875 0.375 -0.191342 -0.75 0.375 -8.32667e-17 -0.8125 0.375 0.191342 -0.875 0.375 0.353553 -0.9375 0.375 0.46194 -1 0.375 0.5 - -0 0.4375 0.653281 -0.0625 0.4375 0.603553 -0.125 0.4375 0.46194 -0.1875 0.4375 0.25 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.25 -0.375 0.4375 -0.46194 -0.4375 0.4375 -0.603553 -0.5 0.4375 -0.653281 -0.5625 0.4375 -0.603553 -0.625 0.4375 -0.46194 -0.6875 0.4375 -0.25 -0.75 0.4375 -1.11022e-16 -0.8125 0.4375 0.25 -0.875 0.4375 0.46194 -0.9375 0.4375 0.603553 -1 0.4375 0.653281 - -0 0.5 0.707107 -0.0625 0.5 0.653281 -0.125 0.5 0.5 -0.1875 0.5 0.270598 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.270598 -0.375 0.5 -0.5 -0.4375 0.5 -0.653281 -0.5 0.5 -0.707107 -0.5625 0.5 -0.653281 -0.625 0.5 -0.5 -0.6875 0.5 -0.270598 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.270598 -0.875 0.5 0.5 -0.9375 0.5 0.653281 -1 0.5 0.707107 - -0 0.5625 0.653281 -0.0625 0.5625 0.603553 -0.125 0.5625 0.46194 -0.1875 0.5625 0.25 -0.25 0.5625 5.55112e-17 -0.3125 0.5625 -0.25 -0.375 0.5625 -0.46194 -0.4375 0.5625 -0.603553 -0.5 0.5625 -0.653281 -0.5625 0.5625 -0.603553 -0.625 0.5625 -0.46194 -0.6875 0.5625 -0.25 -0.75 0.5625 -1.11022e-16 -0.8125 0.5625 0.25 -0.875 0.5625 0.46194 -0.9375 0.5625 0.603553 -1 0.5625 0.653281 - -0 0.625 0.5 -0.0625 0.625 0.46194 -0.125 0.625 0.353553 -0.1875 0.625 0.191342 -0.25 0.625 5.55112e-17 -0.3125 0.625 -0.191342 -0.375 0.625 -0.353553 -0.4375 0.625 -0.46194 -0.5 0.625 -0.5 -0.5625 0.625 -0.46194 -0.625 0.625 -0.353553 -0.6875 0.625 -0.191342 -0.75 0.625 -8.32667e-17 -0.8125 0.625 0.191342 -0.875 0.625 0.353553 -0.9375 0.625 0.46194 -1 0.625 0.5 - -0 0.6875 0.270598 -0.0625 0.6875 0.25 -0.125 0.6875 0.191342 -0.1875 0.6875 0.103553 -0.25 0.6875 2.94903e-17 -0.3125 0.6875 -0.103553 -0.375 0.6875 -0.191342 -0.4375 0.6875 -0.25 -0.5 0.6875 -0.270598 -0.5625 0.6875 -0.25 -0.625 0.6875 -0.191342 -0.6875 0.6875 -0.103553 -0.75 0.6875 -5.37764e-17 -0.8125 0.6875 0.103553 -0.875 0.6875 0.191342 -0.9375 0.6875 0.25 -1 0.6875 0.270598 - -0 0.75 1.11022e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -5.55112e-17 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 8.32667e-17 -0.9375 0.75 1.11022e-16 -1 0.75 1.11022e-16 - -0 0.8125 -0.270598 -0.0625 0.8125 -0.25 -0.125 0.8125 -0.191342 -0.1875 0.8125 -0.103553 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.103553 -0.375 0.8125 0.191342 -0.4375 0.8125 0.25 -0.5 0.8125 0.270598 -0.5625 0.8125 0.25 -0.625 0.8125 0.191342 -0.6875 0.8125 0.103553 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.103553 -0.875 0.8125 -0.191342 -0.9375 0.8125 -0.25 -1 0.8125 -0.270598 - -0 0.875 -0.5 -0.0625 0.875 -0.46194 -0.125 0.875 -0.353553 -0.1875 0.875 -0.191342 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.191342 -0.375 0.875 0.353553 -0.4375 0.875 0.46194 -0.5 0.875 0.5 -0.5625 0.875 0.46194 -0.625 0.875 0.353553 -0.6875 0.875 0.191342 -0.75 0.875 8.32667e-17 -0.8125 0.875 -0.191342 -0.875 0.875 -0.353553 -0.9375 0.875 -0.46194 -1 0.875 -0.5 - -0 0.9375 -0.653281 -0.0625 0.9375 -0.603553 -0.125 0.9375 -0.46194 -0.1875 0.9375 -0.25 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.25 -0.375 0.9375 0.46194 -0.4375 0.9375 0.603553 -0.5 0.9375 0.653281 -0.5625 0.9375 0.603553 -0.625 0.9375 0.46194 -0.6875 0.9375 0.25 -0.75 0.9375 1.11022e-16 -0.8125 0.9375 -0.25 -0.875 0.9375 -0.46194 -0.9375 0.9375 -0.603553 -1 0.9375 -0.653281 - -0 1 -0.707107 -0.0625 1 -0.653281 -0.125 1 -0.5 -0.1875 1 -0.270598 -0.25 1 -5.55112e-17 -0.3125 1 0.270598 -0.375 1 0.5 -0.4375 1 0.653281 -0.5 1 0.707107 -0.5625 1 0.653281 -0.625 1 0.5 -0.6875 1 0.270598 -0.75 1 1.11022e-16 -0.8125 1 -0.270598 -0.875 1 -0.5 -0.9375 1 -0.653281 -1 1 -0.707107 - - -0 0 -0.728969 -0.0625 0 -0.673479 -0.125 0 -0.515459 -0.1875 0 -0.278964 -0.25 0 -5.55112e-17 -0.3125 0 0.278964 -0.375 0 0.515459 -0.4375 0 0.673479 -0.5 0 0.728969 -0.5625 0 0.673479 -0.625 0 0.515459 -0.6875 0 0.278964 -0.75 0 1.11022e-16 -0.8125 0 -0.278964 -0.875 0 -0.515459 -0.9375 0 -0.673479 -1 0 -0.728969 - -0 0.0625 -0.673479 -0.0625 0.0625 -0.622214 -0.125 0.0625 -0.476222 -0.1875 0.0625 -0.257729 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.257729 -0.375 0.0625 0.476222 -0.4375 0.0625 0.622214 -0.5 0.0625 0.673479 -0.5625 0.0625 0.622214 -0.625 0.0625 0.476222 -0.6875 0.0625 0.257729 -0.75 0.0625 1.17961e-16 -0.8125 0.0625 -0.257729 -0.875 0.0625 -0.476222 -0.9375 0.0625 -0.622214 -1 0.0625 -0.673479 - -0 0.125 -0.515459 -0.0625 0.125 -0.476222 -0.125 0.125 -0.364484 -0.1875 0.125 -0.197257 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.197257 -0.375 0.125 0.364484 -0.4375 0.125 0.476222 -0.5 0.125 0.515459 -0.5625 0.125 0.476222 -0.625 0.125 0.364484 -0.6875 0.125 0.197257 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.197257 -0.875 0.125 -0.364484 -0.9375 0.125 -0.476222 -1 0.125 -0.515459 - -0 0.1875 -0.278964 -0.0625 0.1875 -0.257729 -0.125 0.1875 -0.197257 -0.1875 0.1875 -0.106755 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.106755 -0.375 0.1875 0.197257 -0.4375 0.1875 0.257729 -0.5 0.1875 0.278964 -0.5625 0.1875 0.257729 -0.625 0.1875 0.197257 -0.6875 0.1875 0.106755 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.106755 -0.875 0.1875 -0.197257 -0.9375 0.1875 -0.257729 -1 0.1875 -0.278964 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 5.55112e-17 -0.6875 0.25 0 -0.75 0.25 1.2326e-32 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.278964 -0.0625 0.3125 0.257729 -0.125 0.3125 0.197257 -0.1875 0.3125 0.106755 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.106755 -0.375 0.3125 -0.197257 -0.4375 0.3125 -0.257729 -0.5 0.3125 -0.278964 -0.5625 0.3125 -0.257729 -0.625 0.3125 -0.197257 -0.6875 0.3125 -0.106755 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.106755 -0.875 0.3125 0.197257 -0.9375 0.3125 0.257729 -1 0.3125 0.278964 - -0 0.375 0.515459 -0.0625 0.375 0.476222 -0.125 0.375 0.364484 -0.1875 0.375 0.197257 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.197257 -0.375 0.375 -0.364484 -0.4375 0.375 -0.476222 -0.5 0.375 -0.515459 -0.5625 0.375 -0.476222 -0.625 0.375 -0.364484 -0.6875 0.375 -0.197257 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.197257 -0.875 0.375 0.364484 -0.9375 0.375 0.476222 -1 0.375 0.515459 - -0 0.4375 0.673479 -0.0625 0.4375 0.622214 -0.125 0.4375 0.476222 -0.1875 0.4375 0.257729 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.257729 -0.375 0.4375 -0.476222 -0.4375 0.4375 -0.622214 -0.5 0.4375 -0.673479 -0.5625 0.4375 -0.622214 -0.625 0.4375 -0.476222 -0.6875 0.4375 -0.257729 -0.75 0.4375 -1.11022e-16 -0.8125 0.4375 0.257729 -0.875 0.4375 0.476222 -0.9375 0.4375 0.622214 -1 0.4375 0.673479 - -0 0.5 0.728969 -0.0625 0.5 0.673479 -0.125 0.5 0.515459 -0.1875 0.5 0.278964 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.278964 -0.375 0.5 -0.515459 -0.4375 0.5 -0.673479 -0.5 0.5 -0.728969 -0.5625 0.5 -0.673479 -0.625 0.5 -0.515459 -0.6875 0.5 -0.278964 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.278964 -0.875 0.5 0.515459 -0.9375 0.5 0.673479 -1 0.5 0.728969 - -0 0.5625 0.673479 -0.0625 0.5625 0.622214 -0.125 0.5625 0.476222 -0.1875 0.5625 0.257729 -0.25 0.5625 5.55112e-17 -0.3125 0.5625 -0.257729 -0.375 0.5625 -0.476222 -0.4375 0.5625 -0.622214 -0.5 0.5625 -0.673479 -0.5625 0.5625 -0.622214 -0.625 0.5625 -0.476222 -0.6875 0.5625 -0.257729 -0.75 0.5625 -1.11022e-16 -0.8125 0.5625 0.257729 -0.875 0.5625 0.476222 -0.9375 0.5625 0.622214 -1 0.5625 0.673479 - -0 0.625 0.515459 -0.0625 0.625 0.476222 -0.125 0.625 0.364484 -0.1875 0.625 0.197257 -0.25 0.625 5.55112e-17 -0.3125 0.625 -0.197257 -0.375 0.625 -0.364484 -0.4375 0.625 -0.476222 -0.5 0.625 -0.515459 -0.5625 0.625 -0.476222 -0.625 0.625 -0.364484 -0.6875 0.625 -0.197257 -0.75 0.625 -1.11022e-16 -0.8125 0.625 0.197257 -0.875 0.625 0.364484 -0.9375 0.625 0.476222 -1 0.625 0.515459 - -0 0.6875 0.278964 -0.0625 0.6875 0.257729 -0.125 0.6875 0.197257 -0.1875 0.6875 0.106755 -0.25 0.6875 2.94903e-17 -0.3125 0.6875 -0.106755 -0.375 0.6875 -0.197257 -0.4375 0.6875 -0.257729 -0.5 0.6875 -0.278964 -0.5625 0.6875 -0.257729 -0.625 0.6875 -0.197257 -0.6875 0.6875 -0.106755 -0.75 0.6875 -5.37764e-17 -0.8125 0.6875 0.106755 -0.875 0.6875 0.197257 -0.9375 0.6875 0.257729 -1 0.6875 0.278964 - -0 0.75 1.11022e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -8.32667e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 1.11022e-16 -1 0.75 1.11022e-16 - -0 0.8125 -0.278964 -0.0625 0.8125 -0.257729 -0.125 0.8125 -0.197257 -0.1875 0.8125 -0.106755 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.106755 -0.375 0.8125 0.197257 -0.4375 0.8125 0.257729 -0.5 0.8125 0.278964 -0.5625 0.8125 0.257729 -0.625 0.8125 0.197257 -0.6875 0.8125 0.106755 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.106755 -0.875 0.8125 -0.197257 -0.9375 0.8125 -0.257729 -1 0.8125 -0.278964 - -0 0.875 -0.515459 -0.0625 0.875 -0.476222 -0.125 0.875 -0.364484 -0.1875 0.875 -0.197257 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.197257 -0.375 0.875 0.364484 -0.4375 0.875 0.476222 -0.5 0.875 0.515459 -0.5625 0.875 0.476222 -0.625 0.875 0.364484 -0.6875 0.875 0.197257 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.197257 -0.875 0.875 -0.364484 -0.9375 0.875 -0.476222 -1 0.875 -0.515459 - -0 0.9375 -0.673479 -0.0625 0.9375 -0.622214 -0.125 0.9375 -0.476222 -0.1875 0.9375 -0.257729 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.257729 -0.375 0.9375 0.476222 -0.4375 0.9375 0.622214 -0.5 0.9375 0.673479 -0.5625 0.9375 0.622214 -0.625 0.9375 0.476222 -0.6875 0.9375 0.257729 -0.75 0.9375 1.11022e-16 -0.8125 0.9375 -0.257729 -0.875 0.9375 -0.476222 -0.9375 0.9375 -0.622214 -1 0.9375 -0.673479 - -0 1 -0.728969 -0.0625 1 -0.673479 -0.125 1 -0.515459 -0.1875 1 -0.278964 -0.25 1 -5.55112e-17 -0.3125 1 0.278964 -0.375 1 0.515459 -0.4375 1 0.673479 -0.5 1 0.728969 -0.5625 1 0.673479 -0.625 1 0.515459 -0.6875 1 0.278964 -0.75 1 1.11022e-16 -0.8125 1 -0.278964 -0.875 1 -0.515459 -0.9375 1 -0.673479 -1 1 -0.728969 - - -0 0 -0.750111 -0.0625 0 -0.693012 -0.125 0 -0.530409 -0.1875 0 -0.287055 -0.25 0 -5.55112e-17 -0.3125 0 0.287055 -0.375 0 0.530409 -0.4375 0 0.693012 -0.5 0 0.750111 -0.5625 0 0.693012 -0.625 0 0.530409 -0.6875 0 0.287055 -0.75 0 1.11022e-16 -0.8125 0 -0.287055 -0.875 0 -0.530409 -0.9375 0 -0.693012 -1 0 -0.750111 - -0 0.0625 -0.693012 -0.0625 0.0625 -0.64026 -0.125 0.0625 -0.490034 -0.1875 0.0625 -0.265204 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.265204 -0.375 0.0625 0.490034 -0.4375 0.0625 0.64026 -0.5 0.0625 0.693012 -0.5625 0.0625 0.64026 -0.625 0.0625 0.490034 -0.6875 0.0625 0.265204 -0.75 0.0625 1.17961e-16 -0.8125 0.0625 -0.265204 -0.875 0.0625 -0.490034 -0.9375 0.0625 -0.64026 -1 0.0625 -0.693012 - -0 0.125 -0.530409 -0.0625 0.125 -0.490034 -0.125 0.125 -0.375056 -0.1875 0.125 -0.202979 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.202979 -0.375 0.125 0.375056 -0.4375 0.125 0.490034 -0.5 0.125 0.530409 -0.5625 0.125 0.490034 -0.625 0.125 0.375056 -0.6875 0.125 0.202979 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.202979 -0.875 0.125 -0.375056 -0.9375 0.125 -0.490034 -1 0.125 -0.530409 - -0 0.1875 -0.287055 -0.0625 0.1875 -0.265204 -0.125 0.1875 -0.202979 -0.1875 0.1875 -0.109851 -0.25 0.1875 -2.25514e-17 -0.3125 0.1875 0.109851 -0.375 0.1875 0.202979 -0.4375 0.1875 0.265204 -0.5 0.1875 0.287055 -0.5625 0.1875 0.265204 -0.625 0.1875 0.202979 -0.6875 0.1875 0.109851 -0.75 0.1875 6.07153e-17 -0.8125 0.1875 -0.109851 -0.875 0.1875 -0.202979 -0.9375 0.1875 -0.265204 -1 0.1875 -0.287055 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 5.55112e-17 -0.6875 0.25 5.55112e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -5.55112e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -1.11022e-16 -1 0.25 -5.55112e-17 - -0 0.3125 0.287055 -0.0625 0.3125 0.265204 -0.125 0.3125 0.202979 -0.1875 0.3125 0.109851 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.109851 -0.375 0.3125 -0.202979 -0.4375 0.3125 -0.265204 -0.5 0.3125 -0.287055 -0.5625 0.3125 -0.265204 -0.625 0.3125 -0.202979 -0.6875 0.3125 -0.109851 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.109851 -0.875 0.3125 0.202979 -0.9375 0.3125 0.265204 -1 0.3125 0.287055 - -0 0.375 0.530409 -0.0625 0.375 0.490034 -0.125 0.375 0.375056 -0.1875 0.375 0.202979 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.202979 -0.375 0.375 -0.375056 -0.4375 0.375 -0.490034 -0.5 0.375 -0.530409 -0.5625 0.375 -0.490034 -0.625 0.375 -0.375056 -0.6875 0.375 -0.202979 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.202979 -0.875 0.375 0.375056 -0.9375 0.375 0.490034 -1 0.375 0.530409 - -0 0.4375 0.693012 -0.0625 0.4375 0.64026 -0.125 0.4375 0.490034 -0.1875 0.4375 0.265204 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.265204 -0.375 0.4375 -0.490034 -0.4375 0.4375 -0.64026 -0.5 0.4375 -0.693012 -0.5625 0.4375 -0.64026 -0.625 0.4375 -0.490034 -0.6875 0.4375 -0.265204 -0.75 0.4375 -1.11022e-16 -0.8125 0.4375 0.265204 -0.875 0.4375 0.490034 -0.9375 0.4375 0.64026 -1 0.4375 0.693012 - -0 0.5 0.750111 -0.0625 0.5 0.693012 -0.125 0.5 0.530409 -0.1875 0.5 0.287055 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.287055 -0.375 0.5 -0.530409 -0.4375 0.5 -0.693012 -0.5 0.5 -0.750111 -0.5625 0.5 -0.693012 -0.625 0.5 -0.530409 -0.6875 0.5 -0.287055 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.287055 -0.875 0.5 0.530409 -0.9375 0.5 0.693012 -1 0.5 0.750111 - -0 0.5625 0.693012 -0.0625 0.5625 0.64026 -0.125 0.5625 0.490034 -0.1875 0.5625 0.265204 -0.25 0.5625 5.55112e-17 -0.3125 0.5625 -0.265204 -0.375 0.5625 -0.490034 -0.4375 0.5625 -0.64026 -0.5 0.5625 -0.693012 -0.5625 0.5625 -0.64026 -0.625 0.5625 -0.490034 -0.6875 0.5625 -0.265204 -0.75 0.5625 -1.11022e-16 -0.8125 0.5625 0.265204 -0.875 0.5625 0.490034 -0.9375 0.5625 0.64026 -1 0.5625 0.693012 - -0 0.625 0.530409 -0.0625 0.625 0.490034 -0.125 0.625 0.375056 -0.1875 0.625 0.202979 -0.25 0.625 5.55112e-17 -0.3125 0.625 -0.202979 -0.375 0.625 -0.375056 -0.4375 0.625 -0.490034 -0.5 0.625 -0.530409 -0.5625 0.625 -0.490034 -0.625 0.625 -0.375056 -0.6875 0.625 -0.202979 -0.75 0.625 -1.11022e-16 -0.8125 0.625 0.202979 -0.875 0.625 0.375056 -0.9375 0.625 0.490034 -1 0.625 0.530409 - -0 0.6875 0.287055 -0.0625 0.6875 0.265204 -0.125 0.6875 0.202979 -0.1875 0.6875 0.109851 -0.25 0.6875 2.77556e-17 -0.3125 0.6875 -0.109851 -0.375 0.6875 -0.202979 -0.4375 0.6875 -0.265204 -0.5 0.6875 -0.287055 -0.5625 0.6875 -0.265204 -0.625 0.6875 -0.202979 -0.6875 0.6875 -0.109851 -0.75 0.6875 -5.55112e-17 -0.8125 0.6875 0.109851 -0.875 0.6875 0.202979 -0.9375 0.6875 0.265204 -1 0.6875 0.287055 - -0 0.75 1.11022e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 5.55112e-17 -1 0.75 1.11022e-16 - -0 0.8125 -0.287055 -0.0625 0.8125 -0.265204 -0.125 0.8125 -0.202979 -0.1875 0.8125 -0.109851 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.109851 -0.375 0.8125 0.202979 -0.4375 0.8125 0.265204 -0.5 0.8125 0.287055 -0.5625 0.8125 0.265204 -0.625 0.8125 0.202979 -0.6875 0.8125 0.109851 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.109851 -0.875 0.8125 -0.202979 -0.9375 0.8125 -0.265204 -1 0.8125 -0.287055 - -0 0.875 -0.530409 -0.0625 0.875 -0.490034 -0.125 0.875 -0.375056 -0.1875 0.875 -0.202979 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.202979 -0.375 0.875 0.375056 -0.4375 0.875 0.490034 -0.5 0.875 0.530409 -0.5625 0.875 0.490034 -0.625 0.875 0.375056 -0.6875 0.875 0.202979 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.202979 -0.875 0.875 -0.375056 -0.9375 0.875 -0.490034 -1 0.875 -0.530409 - -0 0.9375 -0.693012 -0.0625 0.9375 -0.64026 -0.125 0.9375 -0.490034 -0.1875 0.9375 -0.265204 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.265204 -0.375 0.9375 0.490034 -0.4375 0.9375 0.64026 -0.5 0.9375 0.693012 -0.5625 0.9375 0.64026 -0.625 0.9375 0.490034 -0.6875 0.9375 0.265204 -0.75 0.9375 1.11022e-16 -0.8125 0.9375 -0.265204 -0.875 0.9375 -0.490034 -0.9375 0.9375 -0.64026 -1 0.9375 -0.693012 - -0 1 -0.750111 -0.0625 1 -0.693012 -0.125 1 -0.530409 -0.1875 1 -0.287055 -0.25 1 -5.55112e-17 -0.3125 1 0.287055 -0.375 1 0.530409 -0.4375 1 0.693012 -0.5 1 0.750111 -0.5625 1 0.693012 -0.625 1 0.530409 -0.6875 1 0.287055 -0.75 1 1.11022e-16 -0.8125 1 -0.287055 -0.875 1 -0.530409 -0.9375 1 -0.693012 -1 1 -0.750111 - - -0 0 -0.770513 -0.0625 0 -0.711861 -0.125 0 -0.544835 -0.1875 0 -0.294863 -0.25 0 -1.11022e-16 -0.3125 0 0.294863 -0.375 0 0.544835 -0.4375 0 0.711861 -0.5 0 0.770513 -0.5625 0 0.711861 -0.625 0 0.544835 -0.6875 0 0.294863 -0.75 0 1.11022e-16 -0.8125 0 -0.294863 -0.875 0 -0.544835 -0.9375 0 -0.711861 -1 0 -0.770513 - -0 0.0625 -0.711861 -0.0625 0.0625 -0.657674 -0.125 0.0625 -0.503362 -0.1875 0.0625 -0.272418 -0.25 0.0625 -1.04083e-16 -0.3125 0.0625 0.272418 -0.375 0.0625 0.503362 -0.4375 0.0625 0.657674 -0.5 0.0625 0.711861 -0.5625 0.0625 0.657674 -0.625 0.0625 0.503362 -0.6875 0.0625 0.272418 -0.75 0.0625 6.245e-17 -0.8125 0.0625 -0.272418 -0.875 0.0625 -0.503362 -0.9375 0.0625 -0.657674 -1 0.0625 -0.711861 - -0 0.125 -0.544835 -0.0625 0.125 -0.503362 -0.125 0.125 -0.385257 -0.1875 0.125 -0.208499 -0.25 0.125 -9.71445e-17 -0.3125 0.125 0.208499 -0.375 0.125 0.385257 -0.4375 0.125 0.503362 -0.5 0.125 0.544835 -0.5625 0.125 0.503362 -0.625 0.125 0.385257 -0.6875 0.125 0.208499 -0.75 0.125 6.93889e-17 -0.8125 0.125 -0.208499 -0.875 0.125 -0.385257 -0.9375 0.125 -0.503362 -1 0.125 -0.544835 - -0 0.1875 -0.294863 -0.0625 0.1875 -0.272418 -0.125 0.1875 -0.208499 -0.1875 0.1875 -0.112839 -0.25 0.1875 -5.0307e-17 -0.3125 0.1875 0.112839 -0.375 0.1875 0.208499 -0.4375 0.1875 0.272418 -0.5 0.1875 0.294863 -0.5625 0.1875 0.272418 -0.625 0.1875 0.208499 -0.6875 0.1875 0.112839 -0.75 0.1875 3.29597e-17 -0.8125 0.1875 -0.112839 -0.875 0.1875 -0.208499 -0.9375 0.1875 -0.272418 -1 0.1875 -0.294863 - -0 0.25 -1.11022e-16 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 5.55112e-17 -0.4375 0.25 0 -0.5 0.25 0 -0.5625 0.25 0 -0.625 0.25 5.55112e-17 -0.6875 0.25 5.55112e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -5.55112e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 0 -1 0.25 -1.11022e-16 - -0 0.3125 0.294863 -0.0625 0.3125 0.272418 -0.125 0.3125 0.208499 -0.1875 0.3125 0.112839 -0.25 0.3125 4.16334e-17 -0.3125 0.3125 -0.112839 -0.375 0.3125 -0.208499 -0.4375 0.3125 -0.272418 -0.5 0.3125 -0.294863 -0.5625 0.3125 -0.272418 -0.625 0.3125 -0.208499 -0.6875 0.3125 -0.112839 -0.75 0.3125 -4.16334e-17 -0.8125 0.3125 0.112839 -0.875 0.3125 0.208499 -0.9375 0.3125 0.272418 -1 0.3125 0.294863 - -0 0.375 0.544835 -0.0625 0.375 0.503362 -0.125 0.375 0.385257 -0.1875 0.375 0.208499 -0.25 0.375 8.32667e-17 -0.3125 0.375 -0.208499 -0.375 0.375 -0.385257 -0.4375 0.375 -0.503362 -0.5 0.375 -0.544835 -0.5625 0.375 -0.503362 -0.625 0.375 -0.385257 -0.6875 0.375 -0.208499 -0.75 0.375 -8.32667e-17 -0.8125 0.375 0.208499 -0.875 0.375 0.385257 -0.9375 0.375 0.503362 -1 0.375 0.544835 - -0 0.4375 0.711861 -0.0625 0.4375 0.657674 -0.125 0.4375 0.503362 -0.1875 0.4375 0.272418 -0.25 0.4375 9.71445e-17 -0.3125 0.4375 -0.272418 -0.375 0.4375 -0.503362 -0.4375 0.4375 -0.657674 -0.5 0.4375 -0.711861 -0.5625 0.4375 -0.657674 -0.625 0.4375 -0.503362 -0.6875 0.4375 -0.272418 -0.75 0.4375 -6.93889e-17 -0.8125 0.4375 0.272418 -0.875 0.4375 0.503362 -0.9375 0.4375 0.657674 -1 0.4375 0.711861 - -0 0.5 0.770513 -0.0625 0.5 0.711861 -0.125 0.5 0.544835 -0.1875 0.5 0.294863 -0.25 0.5 1.11022e-16 -0.3125 0.5 -0.294863 -0.375 0.5 -0.544835 -0.4375 0.5 -0.711861 -0.5 0.5 -0.770513 -0.5625 0.5 -0.711861 -0.625 0.5 -0.544835 -0.6875 0.5 -0.294863 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.294863 -0.875 0.5 0.544835 -0.9375 0.5 0.711861 -1 0.5 0.770513 - -0 0.5625 0.711861 -0.0625 0.5625 0.657674 -0.125 0.5625 0.503362 -0.1875 0.5625 0.272418 -0.25 0.5625 9.02056e-17 -0.3125 0.5625 -0.272418 -0.375 0.5625 -0.503362 -0.4375 0.5625 -0.657674 -0.5 0.5625 -0.711861 -0.5625 0.5625 -0.657674 -0.625 0.5625 -0.503362 -0.6875 0.5625 -0.272418 -0.75 0.5625 -7.63278e-17 -0.8125 0.5625 0.272418 -0.875 0.5625 0.503362 -0.9375 0.5625 0.657674 -1 0.5625 0.711861 - -0 0.625 0.544835 -0.0625 0.625 0.503362 -0.125 0.625 0.385257 -0.1875 0.625 0.208499 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.208499 -0.375 0.625 -0.385257 -0.4375 0.625 -0.503362 -0.5 0.625 -0.544835 -0.5625 0.625 -0.503362 -0.625 0.625 -0.385257 -0.6875 0.625 -0.208499 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.208499 -0.875 0.625 0.385257 -0.9375 0.625 0.503362 -1 0.625 0.544835 - -0 0.6875 0.294863 -0.0625 0.6875 0.272418 -0.125 0.6875 0.208499 -0.1875 0.6875 0.112839 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.112839 -0.375 0.6875 -0.208499 -0.4375 0.6875 -0.272418 -0.5 0.6875 -0.294863 -0.5625 0.6875 -0.272418 -0.625 0.6875 -0.208499 -0.6875 0.6875 -0.112839 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.112839 -0.875 0.6875 0.208499 -0.9375 0.6875 0.272418 -1 0.6875 0.294863 - -0 0.75 1.11022e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -8.32667e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -2.22045e-16 -0.5 0.75 -2.22045e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 2.22045e-16 -1 0.75 1.11022e-16 - -0 0.8125 -0.294863 -0.0625 0.8125 -0.272418 -0.125 0.8125 -0.208499 -0.1875 0.8125 -0.112839 -0.25 0.8125 -4.16334e-17 -0.3125 0.8125 0.112839 -0.375 0.8125 0.208499 -0.4375 0.8125 0.272418 -0.5 0.8125 0.294863 -0.5625 0.8125 0.272418 -0.625 0.8125 0.208499 -0.6875 0.8125 0.112839 -0.75 0.8125 4.16334e-17 -0.8125 0.8125 -0.112839 -0.875 0.8125 -0.208499 -0.9375 0.8125 -0.272418 -1 0.8125 -0.294863 - -0 0.875 -0.544835 -0.0625 0.875 -0.503362 -0.125 0.875 -0.385257 -0.1875 0.875 -0.208499 -0.25 0.875 -8.32667e-17 -0.3125 0.875 0.208499 -0.375 0.875 0.385257 -0.4375 0.875 0.503362 -0.5 0.875 0.544835 -0.5625 0.875 0.503362 -0.625 0.875 0.385257 -0.6875 0.875 0.208499 -0.75 0.875 8.32667e-17 -0.8125 0.875 -0.208499 -0.875 0.875 -0.385257 -0.9375 0.875 -0.503362 -1 0.875 -0.544835 - -0 0.9375 -0.711861 -0.0625 0.9375 -0.657674 -0.125 0.9375 -0.503362 -0.1875 0.9375 -0.272418 -0.25 0.9375 -9.71445e-17 -0.3125 0.9375 0.272418 -0.375 0.9375 0.503362 -0.4375 0.9375 0.657674 -0.5 0.9375 0.711861 -0.5625 0.9375 0.657674 -0.625 0.9375 0.503362 -0.6875 0.9375 0.272418 -0.75 0.9375 6.93889e-17 -0.8125 0.9375 -0.272418 -0.875 0.9375 -0.503362 -0.9375 0.9375 -0.657674 -1 0.9375 -0.711861 - -0 1 -0.770513 -0.0625 1 -0.711861 -0.125 1 -0.544835 -0.1875 1 -0.294863 -0.25 1 -1.11022e-16 -0.3125 1 0.294863 -0.375 1 0.544835 -0.4375 1 0.711861 -0.5 1 0.770513 -0.5625 1 0.711861 -0.625 1 0.544835 -0.6875 1 0.294863 -0.75 1 1.11022e-16 -0.8125 1 -0.294863 -0.875 1 -0.544835 -0.9375 1 -0.711861 -1 1 -0.770513 - - -0 0 -0.790155 -0.0625 0 -0.730008 -0.125 0 -0.558724 -0.1875 0 -0.302379 -0.25 0 -5.55112e-17 -0.3125 0 0.302379 -0.375 0 0.558724 -0.4375 0 0.730008 -0.5 0 0.790155 -0.5625 0 0.730008 -0.625 0 0.558724 -0.6875 0 0.302379 -0.75 0 1.66533e-16 -0.8125 0 -0.302379 -0.875 0 -0.558724 -0.9375 0 -0.730008 -1 0 -0.790155 - -0 0.0625 -0.730008 -0.0625 0.0625 -0.674439 -0.125 0.0625 -0.516194 -0.1875 0.0625 -0.279362 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.279362 -0.375 0.0625 0.516194 -0.4375 0.0625 0.674439 -0.5 0.0625 0.730008 -0.5625 0.0625 0.674439 -0.625 0.0625 0.516194 -0.6875 0.0625 0.279362 -0.75 0.0625 1.17961e-16 -0.8125 0.0625 -0.279362 -0.875 0.0625 -0.516194 -0.9375 0.0625 -0.674439 -1 0.0625 -0.730008 - -0 0.125 -0.558724 -0.0625 0.125 -0.516194 -0.125 0.125 -0.395078 -0.1875 0.125 -0.213814 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.213814 -0.375 0.125 0.395078 -0.4375 0.125 0.516194 -0.5 0.125 0.558724 -0.5625 0.125 0.516194 -0.625 0.125 0.395078 -0.6875 0.125 0.213814 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.213814 -0.875 0.125 -0.395078 -0.9375 0.125 -0.516194 -1 0.125 -0.558724 - -0 0.1875 -0.302379 -0.0625 0.1875 -0.279362 -0.125 0.1875 -0.213814 -0.1875 0.1875 -0.115716 -0.25 0.1875 -2.25514e-17 -0.3125 0.1875 0.115716 -0.375 0.1875 0.213814 -0.4375 0.1875 0.279362 -0.5 0.1875 0.302379 -0.5625 0.1875 0.279362 -0.625 0.1875 0.213814 -0.6875 0.1875 0.115716 -0.75 0.1875 6.07153e-17 -0.8125 0.1875 -0.115716 -0.875 0.1875 -0.213814 -0.9375 0.1875 -0.279362 -1 0.1875 -0.302379 - -0 0.25 -5.55112e-17 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 5.55112e-17 -0.5625 0.25 1.11022e-16 -0.625 0.25 0 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -2.77556e-17 -0.875 0.25 0 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.302379 -0.0625 0.3125 0.279362 -0.125 0.3125 0.213814 -0.1875 0.3125 0.115716 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.115716 -0.375 0.3125 -0.213814 -0.4375 0.3125 -0.279362 -0.5 0.3125 -0.302379 -0.5625 0.3125 -0.279362 -0.625 0.3125 -0.213814 -0.6875 0.3125 -0.115716 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.115716 -0.875 0.3125 0.213814 -0.9375 0.3125 0.279362 -1 0.3125 0.302379 - -0 0.375 0.558724 -0.0625 0.375 0.516194 -0.125 0.375 0.395078 -0.1875 0.375 0.213814 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.213814 -0.375 0.375 -0.395078 -0.4375 0.375 -0.516194 -0.5 0.375 -0.558724 -0.5625 0.375 -0.516194 -0.625 0.375 -0.395078 -0.6875 0.375 -0.213814 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.213814 -0.875 0.375 0.395078 -0.9375 0.375 0.516194 -1 0.375 0.558724 - -0 0.4375 0.730008 -0.0625 0.4375 0.674439 -0.125 0.4375 0.516194 -0.1875 0.4375 0.279362 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.279362 -0.375 0.4375 -0.516194 -0.4375 0.4375 -0.674439 -0.5 0.4375 -0.730008 -0.5625 0.4375 -0.674439 -0.625 0.4375 -0.516194 -0.6875 0.4375 -0.279362 -0.75 0.4375 -1.11022e-16 -0.8125 0.4375 0.279362 -0.875 0.4375 0.516194 -0.9375 0.4375 0.674439 -1 0.4375 0.730008 - -0 0.5 0.790155 -0.0625 0.5 0.730008 -0.125 0.5 0.558724 -0.1875 0.5 0.302379 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.302379 -0.375 0.5 -0.558724 -0.4375 0.5 -0.730008 -0.5 0.5 -0.790155 -0.5625 0.5 -0.730008 -0.625 0.5 -0.558724 -0.6875 0.5 -0.302379 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.302379 -0.875 0.5 0.558724 -0.9375 0.5 0.730008 -1 0.5 0.790155 - -0 0.5625 0.730008 -0.0625 0.5625 0.674439 -0.125 0.5625 0.516194 -0.1875 0.5625 0.279362 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.279362 -0.375 0.5625 -0.516194 -0.4375 0.5625 -0.674439 -0.5 0.5625 -0.730008 -0.5625 0.5625 -0.674439 -0.625 0.5625 -0.516194 -0.6875 0.5625 -0.279362 -0.75 0.5625 -1.04083e-16 -0.8125 0.5625 0.279362 -0.875 0.5625 0.516194 -0.9375 0.5625 0.674439 -1 0.5625 0.730008 - -0 0.625 0.558724 -0.0625 0.625 0.516194 -0.125 0.625 0.395078 -0.1875 0.625 0.213814 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.213814 -0.375 0.625 -0.395078 -0.4375 0.625 -0.516194 -0.5 0.625 -0.558724 -0.5625 0.625 -0.516194 -0.625 0.625 -0.395078 -0.6875 0.625 -0.213814 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.213814 -0.875 0.625 0.395078 -0.9375 0.625 0.516194 -1 0.625 0.558724 - -0 0.6875 0.302379 -0.0625 0.6875 0.279362 -0.125 0.6875 0.213814 -0.1875 0.6875 0.115716 -0.25 0.6875 3.29597e-17 -0.3125 0.6875 -0.115716 -0.375 0.6875 -0.213814 -0.4375 0.6875 -0.279362 -0.5 0.6875 -0.302379 -0.5625 0.6875 -0.279362 -0.625 0.6875 -0.213814 -0.6875 0.6875 -0.115716 -0.75 0.6875 -5.0307e-17 -0.8125 0.6875 0.115716 -0.875 0.6875 0.213814 -0.9375 0.6875 0.279362 -1 0.6875 0.302379 - -0 0.75 1.66533e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 1.66533e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.302379 -0.0625 0.8125 -0.279362 -0.125 0.8125 -0.213814 -0.1875 0.8125 -0.115716 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.115716 -0.375 0.8125 0.213814 -0.4375 0.8125 0.279362 -0.5 0.8125 0.302379 -0.5625 0.8125 0.279362 -0.625 0.8125 0.213814 -0.6875 0.8125 0.115716 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.115716 -0.875 0.8125 -0.213814 -0.9375 0.8125 -0.279362 -1 0.8125 -0.302379 - -0 0.875 -0.558724 -0.0625 0.875 -0.516194 -0.125 0.875 -0.395078 -0.1875 0.875 -0.213814 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.213814 -0.375 0.875 0.395078 -0.4375 0.875 0.516194 -0.5 0.875 0.558724 -0.5625 0.875 0.516194 -0.625 0.875 0.395078 -0.6875 0.875 0.213814 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.213814 -0.875 0.875 -0.395078 -0.9375 0.875 -0.516194 -1 0.875 -0.558724 - -0 0.9375 -0.730008 -0.0625 0.9375 -0.674439 -0.125 0.9375 -0.516194 -0.1875 0.9375 -0.279362 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.279362 -0.375 0.9375 0.516194 -0.4375 0.9375 0.674439 -0.5 0.9375 0.730008 -0.5625 0.9375 0.674439 -0.625 0.9375 0.516194 -0.6875 0.9375 0.279362 -0.75 0.9375 1.11022e-16 -0.8125 0.9375 -0.279362 -0.875 0.9375 -0.516194 -0.9375 0.9375 -0.674439 -1 0.9375 -0.730008 - -0 1 -0.790155 -0.0625 1 -0.730008 -0.125 1 -0.558724 -0.1875 1 -0.302379 -0.25 1 -5.55112e-17 -0.3125 1 0.302379 -0.375 1 0.558724 -0.4375 1 0.730008 -0.5 1 0.790155 -0.5625 1 0.730008 -0.625 1 0.558724 -0.6875 1 0.302379 -0.75 1 1.66533e-16 -0.8125 1 -0.302379 -0.875 1 -0.558724 -0.9375 1 -0.730008 -1 1 -0.790155 - - -0 0 -0.809017 -0.0625 0 -0.747434 -0.125 0 -0.572061 -0.1875 0 -0.309597 -0.25 0 0 -0.3125 0 0.309597 -0.375 0 0.572061 -0.4375 0 0.747434 -0.5 0 0.809017 -0.5625 0 0.747434 -0.625 0 0.572061 -0.6875 0 0.309597 -0.75 0 2.22045e-16 -0.8125 0 -0.309597 -0.875 0 -0.572061 -0.9375 0 -0.747434 -1 0 -0.809017 - -0 0.0625 -0.747434 -0.0625 0.0625 -0.690539 -0.125 0.0625 -0.528516 -0.1875 0.0625 -0.286031 -0.25 0.0625 -2.08167e-17 -0.3125 0.0625 0.286031 -0.375 0.0625 0.528516 -0.4375 0.0625 0.690539 -0.5 0.0625 0.747434 -0.5625 0.0625 0.690539 -0.625 0.0625 0.528516 -0.6875 0.0625 0.286031 -0.75 0.0625 1.45717e-16 -0.8125 0.0625 -0.286031 -0.875 0.0625 -0.528516 -0.9375 0.0625 -0.690539 -1 0.0625 -0.747434 - -0 0.125 -0.572061 -0.0625 0.125 -0.528516 -0.125 0.125 -0.404508 -0.1875 0.125 -0.218918 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.218918 -0.375 0.125 0.404508 -0.4375 0.125 0.528516 -0.5 0.125 0.572061 -0.5625 0.125 0.528516 -0.625 0.125 0.404508 -0.6875 0.125 0.218918 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.218918 -0.875 0.125 -0.404508 -0.9375 0.125 -0.528516 -1 0.125 -0.572061 - -0 0.1875 -0.309597 -0.0625 0.1875 -0.286031 -0.125 0.1875 -0.218918 -0.1875 0.1875 -0.118478 -0.25 0.1875 -2.25514e-17 -0.3125 0.1875 0.118478 -0.375 0.1875 0.218918 -0.4375 0.1875 0.286031 -0.5 0.1875 0.309597 -0.5625 0.1875 0.286031 -0.625 0.1875 0.218918 -0.6875 0.1875 0.118478 -0.75 0.1875 6.07153e-17 -0.8125 0.1875 -0.118478 -0.875 0.1875 -0.218918 -0.9375 0.1875 -0.286031 -1 0.1875 -0.309597 - -0 0.25 0 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -1.11022e-16 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 5.55112e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 1.11022e-16 -0.5625 0.25 5.55112e-17 -0.625 0.25 5.55112e-17 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 0.309597 -0.0625 0.3125 0.286031 -0.125 0.3125 0.218918 -0.1875 0.3125 0.118478 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.118478 -0.375 0.3125 -0.218918 -0.4375 0.3125 -0.286031 -0.5 0.3125 -0.309597 -0.5625 0.3125 -0.286031 -0.625 0.3125 -0.218918 -0.6875 0.3125 -0.118478 -0.75 0.3125 -6.93889e-17 -0.8125 0.3125 0.118478 -0.875 0.3125 0.218918 -0.9375 0.3125 0.286031 -1 0.3125 0.309597 - -0 0.375 0.572061 -0.0625 0.375 0.528516 -0.125 0.375 0.404508 -0.1875 0.375 0.218918 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.218918 -0.375 0.375 -0.404508 -0.4375 0.375 -0.528516 -0.5 0.375 -0.572061 -0.5625 0.375 -0.528516 -0.625 0.375 -0.404508 -0.6875 0.375 -0.218918 -0.75 0.375 -1.38778e-16 -0.8125 0.375 0.218918 -0.875 0.375 0.404508 -0.9375 0.375 0.528516 -1 0.375 0.572061 - -0 0.4375 0.747434 -0.0625 0.4375 0.690539 -0.125 0.4375 0.528516 -0.1875 0.4375 0.286031 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.286031 -0.375 0.4375 -0.528516 -0.4375 0.4375 -0.690539 -0.5 0.4375 -0.747434 -0.5625 0.4375 -0.690539 -0.625 0.4375 -0.528516 -0.6875 0.4375 -0.286031 -0.75 0.4375 -1.52656e-16 -0.8125 0.4375 0.286031 -0.875 0.4375 0.528516 -0.9375 0.4375 0.690539 -1 0.4375 0.747434 - -0 0.5 0.809017 -0.0625 0.5 0.747434 -0.125 0.5 0.572061 -0.1875 0.5 0.309597 -0.25 0.5 0 -0.3125 0.5 -0.309597 -0.375 0.5 -0.572061 -0.4375 0.5 -0.747434 -0.5 0.5 -0.809017 -0.5625 0.5 -0.747434 -0.625 0.5 -0.572061 -0.6875 0.5 -0.309597 -0.75 0.5 -2.22045e-16 -0.8125 0.5 0.309597 -0.875 0.5 0.572061 -0.9375 0.5 0.747434 -1 0.5 0.809017 - -0 0.5625 0.747434 -0.0625 0.5625 0.690539 -0.125 0.5625 0.528516 -0.1875 0.5625 0.286031 -0.25 0.5625 6.93889e-18 -0.3125 0.5625 -0.286031 -0.375 0.5625 -0.528516 -0.4375 0.5625 -0.690539 -0.5 0.5625 -0.747434 -0.5625 0.5625 -0.690539 -0.625 0.5625 -0.528516 -0.6875 0.5625 -0.286031 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.286031 -0.875 0.5625 0.528516 -0.9375 0.5625 0.690539 -1 0.5625 0.747434 - -0 0.625 0.572061 -0.0625 0.625 0.528516 -0.125 0.625 0.404508 -0.1875 0.625 0.218918 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.218918 -0.375 0.625 -0.404508 -0.4375 0.625 -0.528516 -0.5 0.625 -0.572061 -0.5625 0.625 -0.528516 -0.625 0.625 -0.404508 -0.6875 0.625 -0.218918 -0.75 0.625 -1.52656e-16 -0.8125 0.625 0.218918 -0.875 0.625 0.404508 -0.9375 0.625 0.528516 -1 0.625 0.572061 - -0 0.6875 0.309597 -0.0625 0.6875 0.286031 -0.125 0.6875 0.218918 -0.1875 0.6875 0.118478 -0.25 0.6875 5.20417e-18 -0.3125 0.6875 -0.118478 -0.375 0.6875 -0.218918 -0.4375 0.6875 -0.286031 -0.5 0.6875 -0.309597 -0.5625 0.6875 -0.286031 -0.625 0.6875 -0.218918 -0.6875 0.6875 -0.118478 -0.75 0.6875 -7.80626e-17 -0.8125 0.6875 0.118478 -0.875 0.6875 0.218918 -0.9375 0.6875 0.286031 -1 0.6875 0.309597 - -0 0.75 2.22045e-16 -0.0625 0.75 1.66533e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -8.32667e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 2.22045e-16 -1 0.75 2.22045e-16 - -0 0.8125 -0.309597 -0.0625 0.8125 -0.286031 -0.125 0.8125 -0.218918 -0.1875 0.8125 -0.118478 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.118478 -0.375 0.8125 0.218918 -0.4375 0.8125 0.286031 -0.5 0.8125 0.309597 -0.5625 0.8125 0.286031 -0.625 0.8125 0.218918 -0.6875 0.8125 0.118478 -0.75 0.8125 6.93889e-17 -0.8125 0.8125 -0.118478 -0.875 0.8125 -0.218918 -0.9375 0.8125 -0.286031 -1 0.8125 -0.309597 - -0 0.875 -0.572061 -0.0625 0.875 -0.528516 -0.125 0.875 -0.404508 -0.1875 0.875 -0.218918 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.218918 -0.375 0.875 0.404508 -0.4375 0.875 0.528516 -0.5 0.875 0.572061 -0.5625 0.875 0.528516 -0.625 0.875 0.404508 -0.6875 0.875 0.218918 -0.75 0.875 1.38778e-16 -0.8125 0.875 -0.218918 -0.875 0.875 -0.404508 -0.9375 0.875 -0.528516 -1 0.875 -0.572061 - -0 0.9375 -0.747434 -0.0625 0.9375 -0.690539 -0.125 0.9375 -0.528516 -0.1875 0.9375 -0.286031 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.286031 -0.375 0.9375 0.528516 -0.4375 0.9375 0.690539 -0.5 0.9375 0.747434 -0.5625 0.9375 0.690539 -0.625 0.9375 0.528516 -0.6875 0.9375 0.286031 -0.75 0.9375 1.52656e-16 -0.8125 0.9375 -0.286031 -0.875 0.9375 -0.528516 -0.9375 0.9375 -0.690539 -1 0.9375 -0.747434 - -0 1 -0.809017 -0.0625 1 -0.747434 -0.125 1 -0.572061 -0.1875 1 -0.309597 -0.25 1 0 -0.3125 1 0.309597 -0.375 1 0.572061 -0.4375 1 0.747434 -0.5 1 0.809017 -0.5625 1 0.747434 -0.625 1 0.572061 -0.6875 1 0.309597 -0.75 1 2.22045e-16 -0.8125 1 -0.309597 -0.875 1 -0.572061 -0.9375 1 -0.747434 -1 1 -0.809017 - - -0 0 -0.827081 -0.0625 0 -0.764123 -0.125 0 -0.584834 -0.1875 0 -0.31651 -0.25 0 -5.55112e-17 -0.3125 0 0.31651 -0.375 0 0.584834 -0.4375 0 0.764123 -0.5 0 0.827081 -0.5625 0 0.764123 -0.625 0 0.584834 -0.6875 0 0.31651 -0.75 0 1.66533e-16 -0.8125 0 -0.31651 -0.875 0 -0.584834 -0.9375 0 -0.764123 -1 0 -0.827081 - -0 0.0625 -0.764123 -0.0625 0.0625 -0.705957 -0.125 0.0625 -0.540316 -0.1875 0.0625 -0.292417 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.292417 -0.375 0.0625 0.540316 -0.4375 0.0625 0.705957 -0.5 0.0625 0.764123 -0.5625 0.0625 0.705957 -0.625 0.0625 0.540316 -0.6875 0.0625 0.292417 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.292417 -0.875 0.0625 -0.540316 -0.9375 0.0625 -0.705957 -1 0.0625 -0.764123 - -0 0.125 -0.584834 -0.0625 0.125 -0.540316 -0.125 0.125 -0.41354 -0.1875 0.125 -0.223806 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.223806 -0.375 0.125 0.41354 -0.4375 0.125 0.540316 -0.5 0.125 0.584834 -0.5625 0.125 0.540316 -0.625 0.125 0.41354 -0.6875 0.125 0.223806 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.223806 -0.875 0.125 -0.41354 -0.9375 0.125 -0.540316 -1 0.125 -0.584834 - -0 0.1875 -0.31651 -0.0625 0.1875 -0.292417 -0.125 0.1875 -0.223806 -0.1875 0.1875 -0.121123 -0.25 0.1875 -2.25514e-17 -0.3125 0.1875 0.121123 -0.375 0.1875 0.223806 -0.4375 0.1875 0.292417 -0.5 0.1875 0.31651 -0.5625 0.1875 0.292417 -0.625 0.1875 0.223806 -0.6875 0.1875 0.121123 -0.75 0.1875 6.07153e-17 -0.8125 0.1875 -0.121123 -0.875 0.1875 -0.223806 -0.9375 0.1875 -0.292417 -1 0.1875 -0.31651 - -0 0.25 -5.55112e-17 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 0 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 5.55112e-17 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -1.11022e-16 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.31651 -0.0625 0.3125 0.292417 -0.125 0.3125 0.223806 -0.1875 0.3125 0.121123 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.121123 -0.375 0.3125 -0.223806 -0.4375 0.3125 -0.292417 -0.5 0.3125 -0.31651 -0.5625 0.3125 -0.292417 -0.625 0.3125 -0.223806 -0.6875 0.3125 -0.121123 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.121123 -0.875 0.3125 0.223806 -0.9375 0.3125 0.292417 -1 0.3125 0.31651 - -0 0.375 0.584834 -0.0625 0.375 0.540316 -0.125 0.375 0.41354 -0.1875 0.375 0.223806 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.223806 -0.375 0.375 -0.41354 -0.4375 0.375 -0.540316 -0.5 0.375 -0.584834 -0.5625 0.375 -0.540316 -0.625 0.375 -0.41354 -0.6875 0.375 -0.223806 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.223806 -0.875 0.375 0.41354 -0.9375 0.375 0.540316 -1 0.375 0.584834 - -0 0.4375 0.764123 -0.0625 0.4375 0.705957 -0.125 0.4375 0.540316 -0.1875 0.4375 0.292417 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.292417 -0.375 0.4375 -0.540316 -0.4375 0.4375 -0.705957 -0.5 0.4375 -0.764123 -0.5625 0.4375 -0.705957 -0.625 0.4375 -0.540316 -0.6875 0.4375 -0.292417 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.292417 -0.875 0.4375 0.540316 -0.9375 0.4375 0.705957 -1 0.4375 0.764123 - -0 0.5 0.827081 -0.0625 0.5 0.764123 -0.125 0.5 0.584834 -0.1875 0.5 0.31651 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.31651 -0.375 0.5 -0.584834 -0.4375 0.5 -0.764123 -0.5 0.5 -0.827081 -0.5625 0.5 -0.764123 -0.625 0.5 -0.584834 -0.6875 0.5 -0.31651 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.31651 -0.875 0.5 0.584834 -0.9375 0.5 0.764123 -1 0.5 0.827081 - -0 0.5625 0.764123 -0.0625 0.5625 0.705957 -0.125 0.5625 0.540316 -0.1875 0.5625 0.292417 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.292417 -0.375 0.5625 -0.540316 -0.4375 0.5625 -0.705957 -0.5 0.5625 -0.764123 -0.5625 0.5625 -0.705957 -0.625 0.5625 -0.540316 -0.6875 0.5625 -0.292417 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.292417 -0.875 0.5625 0.540316 -0.9375 0.5625 0.705957 -1 0.5625 0.764123 - -0 0.625 0.584834 -0.0625 0.625 0.540316 -0.125 0.625 0.41354 -0.1875 0.625 0.223806 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.223806 -0.375 0.625 -0.41354 -0.4375 0.625 -0.540316 -0.5 0.625 -0.584834 -0.5625 0.625 -0.540316 -0.625 0.625 -0.41354 -0.6875 0.625 -0.223806 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.223806 -0.875 0.625 0.41354 -0.9375 0.625 0.540316 -1 0.625 0.584834 - -0 0.6875 0.31651 -0.0625 0.6875 0.292417 -0.125 0.6875 0.223806 -0.1875 0.6875 0.121123 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.121123 -0.375 0.6875 -0.223806 -0.4375 0.6875 -0.292417 -0.5 0.6875 -0.31651 -0.5625 0.6875 -0.292417 -0.625 0.6875 -0.223806 -0.6875 0.6875 -0.121123 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.121123 -0.875 0.6875 0.223806 -0.9375 0.6875 0.292417 -1 0.6875 0.31651 - -0 0.75 1.66533e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -2.22045e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 1.66533e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.31651 -0.0625 0.8125 -0.292417 -0.125 0.8125 -0.223806 -0.1875 0.8125 -0.121123 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.121123 -0.375 0.8125 0.223806 -0.4375 0.8125 0.292417 -0.5 0.8125 0.31651 -0.5625 0.8125 0.292417 -0.625 0.8125 0.223806 -0.6875 0.8125 0.121123 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.121123 -0.875 0.8125 -0.223806 -0.9375 0.8125 -0.292417 -1 0.8125 -0.31651 - -0 0.875 -0.584834 -0.0625 0.875 -0.540316 -0.125 0.875 -0.41354 -0.1875 0.875 -0.223806 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.223806 -0.375 0.875 0.41354 -0.4375 0.875 0.540316 -0.5 0.875 0.584834 -0.5625 0.875 0.540316 -0.625 0.875 0.41354 -0.6875 0.875 0.223806 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.223806 -0.875 0.875 -0.41354 -0.9375 0.875 -0.540316 -1 0.875 -0.584834 - -0 0.9375 -0.764123 -0.0625 0.9375 -0.705957 -0.125 0.9375 -0.540316 -0.1875 0.9375 -0.292417 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.292417 -0.375 0.9375 0.540316 -0.4375 0.9375 0.705957 -0.5 0.9375 0.764123 -0.5625 0.9375 0.705957 -0.625 0.9375 0.540316 -0.6875 0.9375 0.292417 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.292417 -0.875 0.9375 -0.540316 -0.9375 0.9375 -0.705957 -1 0.9375 -0.764123 - -0 1 -0.827081 -0.0625 1 -0.764123 -0.125 1 -0.584834 -0.1875 1 -0.31651 -0.25 1 -5.55112e-17 -0.3125 1 0.31651 -0.375 1 0.584834 -0.4375 1 0.764123 -0.5 1 0.827081 -0.5625 1 0.764123 -0.625 1 0.584834 -0.6875 1 0.31651 -0.75 1 1.66533e-16 -0.8125 1 -0.31651 -0.875 1 -0.584834 -0.9375 1 -0.764123 -1 1 -0.827081 - - -0 0 -0.844328 -0.0625 0 -0.780057 -0.125 0 -0.59703 -0.1875 0 -0.32311 -0.25 0 -5.55112e-17 -0.3125 0 0.32311 -0.375 0 0.59703 -0.4375 0 0.780057 -0.5 0 0.844328 -0.5625 0 0.780057 -0.625 0 0.59703 -0.6875 0 0.32311 -0.75 0 1.66533e-16 -0.8125 0 -0.32311 -0.875 0 -0.59703 -0.9375 0 -0.780057 -1 0 -0.844328 - -0 0.0625 -0.780057 -0.0625 0.0625 -0.720679 -0.125 0.0625 -0.551584 -0.1875 0.0625 -0.298515 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.298515 -0.375 0.0625 0.551584 -0.4375 0.0625 0.720679 -0.5 0.0625 0.780057 -0.5625 0.0625 0.720679 -0.625 0.0625 0.551584 -0.6875 0.0625 0.298515 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.298515 -0.875 0.0625 -0.551584 -0.9375 0.0625 -0.720679 -1 0.0625 -0.780057 - -0 0.125 -0.59703 -0.0625 0.125 -0.551584 -0.125 0.125 -0.422164 -0.1875 0.125 -0.228473 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.228473 -0.375 0.125 0.422164 -0.4375 0.125 0.551584 -0.5 0.125 0.59703 -0.5625 0.125 0.551584 -0.625 0.125 0.422164 -0.6875 0.125 0.228473 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.228473 -0.875 0.125 -0.422164 -0.9375 0.125 -0.551584 -1 0.125 -0.59703 - -0 0.1875 -0.32311 -0.0625 0.1875 -0.298515 -0.125 0.1875 -0.228473 -0.1875 0.1875 -0.123649 -0.25 0.1875 -2.25514e-17 -0.3125 0.1875 0.123649 -0.375 0.1875 0.228473 -0.4375 0.1875 0.298515 -0.5 0.1875 0.32311 -0.5625 0.1875 0.298515 -0.625 0.1875 0.228473 -0.6875 0.1875 0.123649 -0.75 0.1875 6.07153e-17 -0.8125 0.1875 -0.123649 -0.875 0.1875 -0.228473 -0.9375 0.1875 -0.298515 -1 0.1875 -0.32311 - -0 0.25 -5.55112e-17 -0.0625 0.25 0 -0.125 0.25 -1.11022e-16 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 0 -0.5 0.25 5.55112e-17 -0.5625 0.25 1.11022e-16 -0.625 0.25 5.55112e-17 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -1.11022e-16 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.32311 -0.0625 0.3125 0.298515 -0.125 0.3125 0.228473 -0.1875 0.3125 0.123649 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.123649 -0.375 0.3125 -0.228473 -0.4375 0.3125 -0.298515 -0.5 0.3125 -0.32311 -0.5625 0.3125 -0.298515 -0.625 0.3125 -0.228473 -0.6875 0.3125 -0.123649 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.123649 -0.875 0.3125 0.228473 -0.9375 0.3125 0.298515 -1 0.3125 0.32311 - -0 0.375 0.59703 -0.0625 0.375 0.551584 -0.125 0.375 0.422164 -0.1875 0.375 0.228473 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.228473 -0.375 0.375 -0.422164 -0.4375 0.375 -0.551584 -0.5 0.375 -0.59703 -0.5625 0.375 -0.551584 -0.625 0.375 -0.422164 -0.6875 0.375 -0.228473 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.228473 -0.875 0.375 0.422164 -0.9375 0.375 0.551584 -1 0.375 0.59703 - -0 0.4375 0.780057 -0.0625 0.4375 0.720679 -0.125 0.4375 0.551584 -0.1875 0.4375 0.298515 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.298515 -0.375 0.4375 -0.551584 -0.4375 0.4375 -0.720679 -0.5 0.4375 -0.780057 -0.5625 0.4375 -0.720679 -0.625 0.4375 -0.551584 -0.6875 0.4375 -0.298515 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.298515 -0.875 0.4375 0.551584 -0.9375 0.4375 0.720679 -1 0.4375 0.780057 - -0 0.5 0.844328 -0.0625 0.5 0.780057 -0.125 0.5 0.59703 -0.1875 0.5 0.32311 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.32311 -0.375 0.5 -0.59703 -0.4375 0.5 -0.780057 -0.5 0.5 -0.844328 -0.5625 0.5 -0.780057 -0.625 0.5 -0.59703 -0.6875 0.5 -0.32311 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.32311 -0.875 0.5 0.59703 -0.9375 0.5 0.780057 -1 0.5 0.844328 - -0 0.5625 0.780057 -0.0625 0.5625 0.720679 -0.125 0.5625 0.551584 -0.1875 0.5625 0.298515 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.298515 -0.375 0.5625 -0.551584 -0.4375 0.5625 -0.720679 -0.5 0.5625 -0.780057 -0.5625 0.5625 -0.720679 -0.625 0.5625 -0.551584 -0.6875 0.5625 -0.298515 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.298515 -0.875 0.5625 0.551584 -0.9375 0.5625 0.720679 -1 0.5625 0.780057 - -0 0.625 0.59703 -0.0625 0.625 0.551584 -0.125 0.625 0.422164 -0.1875 0.625 0.228473 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.228473 -0.375 0.625 -0.422164 -0.4375 0.625 -0.551584 -0.5 0.625 -0.59703 -0.5625 0.625 -0.551584 -0.625 0.625 -0.422164 -0.6875 0.625 -0.228473 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.228473 -0.875 0.625 0.422164 -0.9375 0.625 0.551584 -1 0.625 0.59703 - -0 0.6875 0.32311 -0.0625 0.6875 0.298515 -0.125 0.6875 0.228473 -0.1875 0.6875 0.123649 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.123649 -0.375 0.6875 -0.228473 -0.4375 0.6875 -0.298515 -0.5 0.6875 -0.32311 -0.5625 0.6875 -0.298515 -0.625 0.6875 -0.228473 -0.6875 0.6875 -0.123649 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.123649 -0.875 0.6875 0.228473 -0.9375 0.6875 0.298515 -1 0.6875 0.32311 - -0 0.75 1.66533e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -2.22045e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 1.66533e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.32311 -0.0625 0.8125 -0.298515 -0.125 0.8125 -0.228473 -0.1875 0.8125 -0.123649 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.123649 -0.375 0.8125 0.228473 -0.4375 0.8125 0.298515 -0.5 0.8125 0.32311 -0.5625 0.8125 0.298515 -0.625 0.8125 0.228473 -0.6875 0.8125 0.123649 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.123649 -0.875 0.8125 -0.228473 -0.9375 0.8125 -0.298515 -1 0.8125 -0.32311 - -0 0.875 -0.59703 -0.0625 0.875 -0.551584 -0.125 0.875 -0.422164 -0.1875 0.875 -0.228473 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.228473 -0.375 0.875 0.422164 -0.4375 0.875 0.551584 -0.5 0.875 0.59703 -0.5625 0.875 0.551584 -0.625 0.875 0.422164 -0.6875 0.875 0.228473 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.228473 -0.875 0.875 -0.422164 -0.9375 0.875 -0.551584 -1 0.875 -0.59703 - -0 0.9375 -0.780057 -0.0625 0.9375 -0.720679 -0.125 0.9375 -0.551584 -0.1875 0.9375 -0.298515 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.298515 -0.375 0.9375 0.551584 -0.4375 0.9375 0.720679 -0.5 0.9375 0.780057 -0.5625 0.9375 0.720679 -0.625 0.9375 0.551584 -0.6875 0.9375 0.298515 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.298515 -0.875 0.9375 -0.551584 -0.9375 0.9375 -0.720679 -1 0.9375 -0.780057 - -0 1 -0.844328 -0.0625 1 -0.780057 -0.125 1 -0.59703 -0.1875 1 -0.32311 -0.25 1 -5.55112e-17 -0.3125 1 0.32311 -0.375 1 0.59703 -0.4375 1 0.780057 -0.5 1 0.844328 -0.5625 1 0.780057 -0.625 1 0.59703 -0.6875 1 0.32311 -0.75 1 1.66533e-16 -0.8125 1 -0.32311 -0.875 1 -0.59703 -0.9375 1 -0.780057 -1 1 -0.844328 - - -0 0 -0.860742 -0.0625 0 -0.795222 -0.125 0 -0.608637 -0.1875 0 -0.329392 -0.25 0 -1.11022e-16 -0.3125 0 0.329392 -0.375 0 0.608637 -0.4375 0 0.795222 -0.5 0 0.860742 -0.5625 0 0.795222 -0.625 0 0.608637 -0.6875 0 0.329392 -0.75 0 1.11022e-16 -0.8125 0 -0.329392 -0.875 0 -0.608637 -0.9375 0 -0.795222 -1 0 -0.860742 - -0 0.0625 -0.795222 -0.0625 0.0625 -0.734689 -0.125 0.0625 -0.562307 -0.1875 0.0625 -0.304318 -0.25 0.0625 -1.04083e-16 -0.3125 0.0625 0.304318 -0.375 0.0625 0.562307 -0.4375 0.0625 0.734689 -0.5 0.0625 0.795222 -0.5625 0.0625 0.734689 -0.625 0.0625 0.562307 -0.6875 0.0625 0.304318 -0.75 0.0625 1.17961e-16 -0.8125 0.0625 -0.304318 -0.875 0.0625 -0.562307 -0.9375 0.0625 -0.734689 -1 0.0625 -0.795222 - -0 0.125 -0.608637 -0.0625 0.125 -0.562307 -0.125 0.125 -0.430371 -0.1875 0.125 -0.232915 -0.25 0.125 -9.71445e-17 -0.3125 0.125 0.232915 -0.375 0.125 0.430371 -0.4375 0.125 0.562307 -0.5 0.125 0.608637 -0.5625 0.125 0.562307 -0.625 0.125 0.430371 -0.6875 0.125 0.232915 -0.75 0.125 6.93889e-17 -0.8125 0.125 -0.232915 -0.875 0.125 -0.430371 -0.9375 0.125 -0.562307 -1 0.125 -0.608637 - -0 0.1875 -0.329392 -0.0625 0.1875 -0.304318 -0.125 0.1875 -0.232915 -0.1875 0.1875 -0.126053 -0.25 0.1875 -4.85723e-17 -0.3125 0.1875 0.126053 -0.375 0.1875 0.232915 -0.4375 0.1875 0.304318 -0.5 0.1875 0.329392 -0.5625 0.1875 0.304318 -0.625 0.1875 0.232915 -0.6875 0.1875 0.126053 -0.75 0.1875 3.46945e-17 -0.8125 0.1875 -0.126053 -0.875 0.1875 -0.232915 -0.9375 0.1875 -0.304318 -1 0.1875 -0.329392 - -0 0.25 -1.11022e-16 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 5.55112e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 1.11022e-16 -0.5625 0.25 0 -0.625 0.25 5.55112e-17 -0.6875 0.25 0 -0.75 0.25 1.2326e-32 -0.8125 0.25 -5.55112e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 0 -1 0.25 -1.11022e-16 - -0 0.3125 0.329392 -0.0625 0.3125 0.304318 -0.125 0.3125 0.232915 -0.1875 0.3125 0.126053 -0.25 0.3125 4.16334e-17 -0.3125 0.3125 -0.126053 -0.375 0.3125 -0.232915 -0.4375 0.3125 -0.304318 -0.5 0.3125 -0.329392 -0.5625 0.3125 -0.304318 -0.625 0.3125 -0.232915 -0.6875 0.3125 -0.126053 -0.75 0.3125 -4.16334e-17 -0.8125 0.3125 0.126053 -0.875 0.3125 0.232915 -0.9375 0.3125 0.304318 -1 0.3125 0.329392 - -0 0.375 0.608637 -0.0625 0.375 0.562307 -0.125 0.375 0.430371 -0.1875 0.375 0.232915 -0.25 0.375 8.32667e-17 -0.3125 0.375 -0.232915 -0.375 0.375 -0.430371 -0.4375 0.375 -0.562307 -0.5 0.375 -0.608637 -0.5625 0.375 -0.562307 -0.625 0.375 -0.430371 -0.6875 0.375 -0.232915 -0.75 0.375 -8.32667e-17 -0.8125 0.375 0.232915 -0.875 0.375 0.430371 -0.9375 0.375 0.562307 -1 0.375 0.608637 - -0 0.4375 0.795222 -0.0625 0.4375 0.734689 -0.125 0.4375 0.562307 -0.1875 0.4375 0.304318 -0.25 0.4375 9.71445e-17 -0.3125 0.4375 -0.304318 -0.375 0.4375 -0.562307 -0.4375 0.4375 -0.734689 -0.5 0.4375 -0.795222 -0.5625 0.4375 -0.734689 -0.625 0.4375 -0.562307 -0.6875 0.4375 -0.304318 -0.75 0.4375 -1.249e-16 -0.8125 0.4375 0.304318 -0.875 0.4375 0.562307 -0.9375 0.4375 0.734689 -1 0.4375 0.795222 - -0 0.5 0.860742 -0.0625 0.5 0.795222 -0.125 0.5 0.608637 -0.1875 0.5 0.329392 -0.25 0.5 1.11022e-16 -0.3125 0.5 -0.329392 -0.375 0.5 -0.608637 -0.4375 0.5 -0.795222 -0.5 0.5 -0.860742 -0.5625 0.5 -0.795222 -0.625 0.5 -0.608637 -0.6875 0.5 -0.329392 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.329392 -0.875 0.5 0.608637 -0.9375 0.5 0.795222 -1 0.5 0.860742 - -0 0.5625 0.795222 -0.0625 0.5625 0.734689 -0.125 0.5625 0.562307 -0.1875 0.5625 0.304318 -0.25 0.5625 9.02056e-17 -0.3125 0.5625 -0.304318 -0.375 0.5625 -0.562307 -0.4375 0.5625 -0.734689 -0.5 0.5625 -0.795222 -0.5625 0.5625 -0.734689 -0.625 0.5625 -0.562307 -0.6875 0.5625 -0.304318 -0.75 0.5625 -1.31839e-16 -0.8125 0.5625 0.304318 -0.875 0.5625 0.562307 -0.9375 0.5625 0.734689 -1 0.5625 0.795222 - -0 0.625 0.608637 -0.0625 0.625 0.562307 -0.125 0.625 0.430371 -0.1875 0.625 0.232915 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.232915 -0.375 0.625 -0.430371 -0.4375 0.625 -0.562307 -0.5 0.625 -0.608637 -0.5625 0.625 -0.562307 -0.625 0.625 -0.430371 -0.6875 0.625 -0.232915 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.232915 -0.875 0.625 0.430371 -0.9375 0.625 0.562307 -1 0.625 0.608637 - -0 0.6875 0.329392 -0.0625 0.6875 0.304318 -0.125 0.6875 0.232915 -0.1875 0.6875 0.126053 -0.25 0.6875 3.64292e-17 -0.3125 0.6875 -0.126053 -0.375 0.6875 -0.232915 -0.4375 0.6875 -0.304318 -0.5 0.6875 -0.329392 -0.5625 0.6875 -0.304318 -0.625 0.6875 -0.232915 -0.6875 0.6875 -0.126053 -0.75 0.6875 -4.68375e-17 -0.8125 0.6875 0.126053 -0.875 0.6875 0.232915 -0.9375 0.6875 0.304318 -1 0.6875 0.329392 - -0 0.75 1.11022e-16 -0.0625 0.75 1.66533e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -8.32667e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -8.32667e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 2.22045e-16 -1 0.75 1.11022e-16 - -0 0.8125 -0.329392 -0.0625 0.8125 -0.304318 -0.125 0.8125 -0.232915 -0.1875 0.8125 -0.126053 -0.25 0.8125 -4.16334e-17 -0.3125 0.8125 0.126053 -0.375 0.8125 0.232915 -0.4375 0.8125 0.304318 -0.5 0.8125 0.329392 -0.5625 0.8125 0.304318 -0.625 0.8125 0.232915 -0.6875 0.8125 0.126053 -0.75 0.8125 4.16334e-17 -0.8125 0.8125 -0.126053 -0.875 0.8125 -0.232915 -0.9375 0.8125 -0.304318 -1 0.8125 -0.329392 - -0 0.875 -0.608637 -0.0625 0.875 -0.562307 -0.125 0.875 -0.430371 -0.1875 0.875 -0.232915 -0.25 0.875 -8.32667e-17 -0.3125 0.875 0.232915 -0.375 0.875 0.430371 -0.4375 0.875 0.562307 -0.5 0.875 0.608637 -0.5625 0.875 0.562307 -0.625 0.875 0.430371 -0.6875 0.875 0.232915 -0.75 0.875 8.32667e-17 -0.8125 0.875 -0.232915 -0.875 0.875 -0.430371 -0.9375 0.875 -0.562307 -1 0.875 -0.608637 - -0 0.9375 -0.795222 -0.0625 0.9375 -0.734689 -0.125 0.9375 -0.562307 -0.1875 0.9375 -0.304318 -0.25 0.9375 -9.71445e-17 -0.3125 0.9375 0.304318 -0.375 0.9375 0.562307 -0.4375 0.9375 0.734689 -0.5 0.9375 0.795222 -0.5625 0.9375 0.734689 -0.625 0.9375 0.562307 -0.6875 0.9375 0.304318 -0.75 0.9375 1.249e-16 -0.8125 0.9375 -0.304318 -0.875 0.9375 -0.562307 -0.9375 0.9375 -0.734689 -1 0.9375 -0.795222 - -0 1 -0.860742 -0.0625 1 -0.795222 -0.125 1 -0.608637 -0.1875 1 -0.329392 -0.25 1 -1.11022e-16 -0.3125 1 0.329392 -0.375 1 0.608637 -0.4375 1 0.795222 -0.5 1 0.860742 -0.5625 1 0.795222 -0.625 1 0.608637 -0.6875 1 0.329392 -0.75 1 1.11022e-16 -0.8125 1 -0.329392 -0.875 1 -0.608637 -0.9375 1 -0.795222 -1 1 -0.860742 - - -0 0 -0.876307 -0.0625 0 -0.809602 -0.125 0 -0.619642 -0.1875 0 -0.335348 -0.25 0 0 -0.3125 0 0.335348 -0.375 0 0.619642 -0.4375 0 0.809602 -0.5 0 0.876307 -0.5625 0 0.809602 -0.625 0 0.619642 -0.6875 0 0.335348 -0.75 0 2.22045e-16 -0.8125 0 -0.335348 -0.875 0 -0.619642 -0.9375 0 -0.809602 -1 0 -0.876307 - -0 0.0625 -0.809602 -0.0625 0.0625 -0.747975 -0.125 0.0625 -0.572475 -0.1875 0.0625 -0.309821 -0.25 0.0625 -2.08167e-17 -0.3125 0.0625 0.309821 -0.375 0.0625 0.572475 -0.4375 0.0625 0.747975 -0.5 0.0625 0.809602 -0.5625 0.0625 0.747975 -0.625 0.0625 0.572475 -0.6875 0.0625 0.309821 -0.75 0.0625 2.01228e-16 -0.8125 0.0625 -0.309821 -0.875 0.0625 -0.572475 -0.9375 0.0625 -0.747975 -1 0.0625 -0.809602 - -0 0.125 -0.619642 -0.0625 0.125 -0.572475 -0.125 0.125 -0.438153 -0.1875 0.125 -0.237127 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.237127 -0.375 0.125 0.438153 -0.4375 0.125 0.572475 -0.5 0.125 0.619642 -0.5625 0.125 0.572475 -0.625 0.125 0.438153 -0.6875 0.125 0.237127 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.237127 -0.875 0.125 -0.438153 -0.9375 0.125 -0.572475 -1 0.125 -0.619642 - -0 0.1875 -0.335348 -0.0625 0.1875 -0.309821 -0.125 0.1875 -0.237127 -0.1875 0.1875 -0.128332 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.128332 -0.375 0.1875 0.237127 -0.4375 0.1875 0.309821 -0.5 0.1875 0.335348 -0.5625 0.1875 0.309821 -0.625 0.1875 0.237127 -0.6875 0.1875 0.128332 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.128332 -0.875 0.1875 -0.237127 -0.9375 0.1875 -0.309821 -1 0.1875 -0.335348 - -0 0.25 0 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 5.55112e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 1.11022e-16 -0.5625 0.25 5.55112e-17 -0.625 0.25 1.11022e-16 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 0.335348 -0.0625 0.3125 0.309821 -0.125 0.3125 0.237127 -0.1875 0.3125 0.128332 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.128332 -0.375 0.3125 -0.237127 -0.4375 0.3125 -0.309821 -0.5 0.3125 -0.335348 -0.5625 0.3125 -0.309821 -0.625 0.3125 -0.237127 -0.6875 0.3125 -0.128332 -0.75 0.3125 -6.93889e-17 -0.8125 0.3125 0.128332 -0.875 0.3125 0.237127 -0.9375 0.3125 0.309821 -1 0.3125 0.335348 - -0 0.375 0.619642 -0.0625 0.375 0.572475 -0.125 0.375 0.438153 -0.1875 0.375 0.237127 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.237127 -0.375 0.375 -0.438153 -0.4375 0.375 -0.572475 -0.5 0.375 -0.619642 -0.5625 0.375 -0.572475 -0.625 0.375 -0.438153 -0.6875 0.375 -0.237127 -0.75 0.375 -1.38778e-16 -0.8125 0.375 0.237127 -0.875 0.375 0.438153 -0.9375 0.375 0.572475 -1 0.375 0.619642 - -0 0.4375 0.809602 -0.0625 0.4375 0.747975 -0.125 0.4375 0.572475 -0.1875 0.4375 0.309821 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.309821 -0.375 0.4375 -0.572475 -0.4375 0.4375 -0.747975 -0.5 0.4375 -0.809602 -0.5625 0.4375 -0.747975 -0.625 0.4375 -0.572475 -0.6875 0.4375 -0.309821 -0.75 0.4375 -2.08167e-16 -0.8125 0.4375 0.309821 -0.875 0.4375 0.572475 -0.9375 0.4375 0.747975 -1 0.4375 0.809602 - -0 0.5 0.876307 -0.0625 0.5 0.809602 -0.125 0.5 0.619642 -0.1875 0.5 0.335348 -0.25 0.5 0 -0.3125 0.5 -0.335348 -0.375 0.5 -0.619642 -0.4375 0.5 -0.809602 -0.5 0.5 -0.876307 -0.5625 0.5 -0.809602 -0.625 0.5 -0.619642 -0.6875 0.5 -0.335348 -0.75 0.5 -2.22045e-16 -0.8125 0.5 0.335348 -0.875 0.5 0.619642 -0.9375 0.5 0.809602 -1 0.5 0.876307 - -0 0.5625 0.809602 -0.0625 0.5625 0.747975 -0.125 0.5625 0.572475 -0.1875 0.5625 0.309821 -0.25 0.5625 6.93889e-18 -0.3125 0.5625 -0.309821 -0.375 0.5625 -0.572475 -0.4375 0.5625 -0.747975 -0.5 0.5625 -0.809602 -0.5625 0.5625 -0.747975 -0.625 0.5625 -0.572475 -0.6875 0.5625 -0.309821 -0.75 0.5625 -2.15106e-16 -0.8125 0.5625 0.309821 -0.875 0.5625 0.572475 -0.9375 0.5625 0.747975 -1 0.5625 0.809602 - -0 0.625 0.619642 -0.0625 0.625 0.572475 -0.125 0.625 0.438153 -0.1875 0.625 0.237127 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.237127 -0.375 0.625 -0.438153 -0.4375 0.625 -0.572475 -0.5 0.625 -0.619642 -0.5625 0.625 -0.572475 -0.625 0.625 -0.438153 -0.6875 0.625 -0.237127 -0.75 0.625 -1.52656e-16 -0.8125 0.625 0.237127 -0.875 0.625 0.438153 -0.9375 0.625 0.572475 -1 0.625 0.619642 - -0 0.6875 0.335348 -0.0625 0.6875 0.309821 -0.125 0.6875 0.237127 -0.1875 0.6875 0.128332 -0.25 0.6875 8.67362e-18 -0.3125 0.6875 -0.128332 -0.375 0.6875 -0.237127 -0.4375 0.6875 -0.309821 -0.5 0.6875 -0.335348 -0.5625 0.6875 -0.309821 -0.625 0.6875 -0.237127 -0.6875 0.6875 -0.128332 -0.75 0.6875 -7.45931e-17 -0.8125 0.6875 0.128332 -0.875 0.6875 0.237127 -0.9375 0.6875 0.309821 -1 0.6875 0.335348 - -0 0.75 2.22045e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -8.32667e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 2.22045e-16 -1 0.75 2.22045e-16 - -0 0.8125 -0.335348 -0.0625 0.8125 -0.309821 -0.125 0.8125 -0.237127 -0.1875 0.8125 -0.128332 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.128332 -0.375 0.8125 0.237127 -0.4375 0.8125 0.309821 -0.5 0.8125 0.335348 -0.5625 0.8125 0.309821 -0.625 0.8125 0.237127 -0.6875 0.8125 0.128332 -0.75 0.8125 6.93889e-17 -0.8125 0.8125 -0.128332 -0.875 0.8125 -0.237127 -0.9375 0.8125 -0.309821 -1 0.8125 -0.335348 - -0 0.875 -0.619642 -0.0625 0.875 -0.572475 -0.125 0.875 -0.438153 -0.1875 0.875 -0.237127 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.237127 -0.375 0.875 0.438153 -0.4375 0.875 0.572475 -0.5 0.875 0.619642 -0.5625 0.875 0.572475 -0.625 0.875 0.438153 -0.6875 0.875 0.237127 -0.75 0.875 1.38778e-16 -0.8125 0.875 -0.237127 -0.875 0.875 -0.438153 -0.9375 0.875 -0.572475 -1 0.875 -0.619642 - -0 0.9375 -0.809602 -0.0625 0.9375 -0.747975 -0.125 0.9375 -0.572475 -0.1875 0.9375 -0.309821 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.309821 -0.375 0.9375 0.572475 -0.4375 0.9375 0.747975 -0.5 0.9375 0.809602 -0.5625 0.9375 0.747975 -0.625 0.9375 0.572475 -0.6875 0.9375 0.309821 -0.75 0.9375 2.08167e-16 -0.8125 0.9375 -0.309821 -0.875 0.9375 -0.572475 -0.9375 0.9375 -0.747975 -1 0.9375 -0.809602 - -0 1 -0.876307 -0.0625 1 -0.809602 -0.125 1 -0.619642 -0.1875 1 -0.335348 -0.25 1 0 -0.3125 1 0.335348 -0.375 1 0.619642 -0.4375 1 0.809602 -0.5 1 0.876307 -0.5625 1 0.809602 -0.625 1 0.619642 -0.6875 1 0.335348 -0.75 1 2.22045e-16 -0.8125 1 -0.335348 -0.875 1 -0.619642 -0.9375 1 -0.809602 -1 1 -0.876307 - - -0 0 -0.891007 -0.0625 0 -0.823183 -0.125 0 -0.630037 -0.1875 0 -0.340973 -0.25 0 -5.55112e-17 -0.3125 0 0.340973 -0.375 0 0.630037 -0.4375 0 0.823183 -0.5 0 0.891007 -0.5625 0 0.823183 -0.625 0 0.630037 -0.6875 0 0.340973 -0.75 0 1.66533e-16 -0.8125 0 -0.340973 -0.875 0 -0.630037 -0.9375 0 -0.823183 -1 0 -0.891007 - -0 0.0625 -0.823183 -0.0625 0.0625 -0.760522 -0.125 0.0625 -0.582078 -0.1875 0.0625 -0.315018 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.315018 -0.375 0.0625 0.582078 -0.4375 0.0625 0.760522 -0.5 0.0625 0.823183 -0.5625 0.0625 0.760522 -0.625 0.0625 0.582078 -0.6875 0.0625 0.315018 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.315018 -0.875 0.0625 -0.582078 -0.9375 0.0625 -0.760522 -1 0.0625 -0.823183 - -0 0.125 -0.630037 -0.0625 0.125 -0.582078 -0.125 0.125 -0.445503 -0.1875 0.125 -0.241105 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.241105 -0.375 0.125 0.445503 -0.4375 0.125 0.582078 -0.5 0.125 0.630037 -0.5625 0.125 0.582078 -0.625 0.125 0.445503 -0.6875 0.125 0.241105 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.241105 -0.875 0.125 -0.445503 -0.9375 0.125 -0.582078 -1 0.125 -0.630037 - -0 0.1875 -0.340973 -0.0625 0.1875 -0.315018 -0.125 0.1875 -0.241105 -0.1875 0.1875 -0.130485 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.130485 -0.375 0.1875 0.241105 -0.4375 0.1875 0.315018 -0.5 0.1875 0.340973 -0.5625 0.1875 0.315018 -0.625 0.1875 0.241105 -0.6875 0.1875 0.130485 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.130485 -0.875 0.1875 -0.241105 -0.9375 0.1875 -0.315018 -1 0.1875 -0.340973 - -0 0.25 -5.55112e-17 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 0 -0.3125 0.25 2.77556e-17 -0.375 0.25 1.11022e-16 -0.4375 0.25 1.11022e-16 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 0 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.340973 -0.0625 0.3125 0.315018 -0.125 0.3125 0.241105 -0.1875 0.3125 0.130485 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.130485 -0.375 0.3125 -0.241105 -0.4375 0.3125 -0.315018 -0.5 0.3125 -0.340973 -0.5625 0.3125 -0.315018 -0.625 0.3125 -0.241105 -0.6875 0.3125 -0.130485 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.130485 -0.875 0.3125 0.241105 -0.9375 0.3125 0.315018 -1 0.3125 0.340973 - -0 0.375 0.630037 -0.0625 0.375 0.582078 -0.125 0.375 0.445503 -0.1875 0.375 0.241105 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.241105 -0.375 0.375 -0.445503 -0.4375 0.375 -0.582078 -0.5 0.375 -0.630037 -0.5625 0.375 -0.582078 -0.625 0.375 -0.445503 -0.6875 0.375 -0.241105 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.241105 -0.875 0.375 0.445503 -0.9375 0.375 0.582078 -1 0.375 0.630037 - -0 0.4375 0.823183 -0.0625 0.4375 0.760522 -0.125 0.4375 0.582078 -0.1875 0.4375 0.315018 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.315018 -0.375 0.4375 -0.582078 -0.4375 0.4375 -0.760522 -0.5 0.4375 -0.823183 -0.5625 0.4375 -0.760522 -0.625 0.4375 -0.582078 -0.6875 0.4375 -0.315018 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.315018 -0.875 0.4375 0.582078 -0.9375 0.4375 0.760522 -1 0.4375 0.823183 - -0 0.5 0.891007 -0.0625 0.5 0.823183 -0.125 0.5 0.630037 -0.1875 0.5 0.340973 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.340973 -0.375 0.5 -0.630037 -0.4375 0.5 -0.823183 -0.5 0.5 -0.891007 -0.5625 0.5 -0.823183 -0.625 0.5 -0.630037 -0.6875 0.5 -0.340973 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.340973 -0.875 0.5 0.630037 -0.9375 0.5 0.823183 -1 0.5 0.891007 - -0 0.5625 0.823183 -0.0625 0.5625 0.760522 -0.125 0.5625 0.582078 -0.1875 0.5625 0.315018 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.315018 -0.375 0.5625 -0.582078 -0.4375 0.5625 -0.760522 -0.5 0.5625 -0.823183 -0.5625 0.5625 -0.760522 -0.625 0.5625 -0.582078 -0.6875 0.5625 -0.315018 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.315018 -0.875 0.5625 0.582078 -0.9375 0.5625 0.760522 -1 0.5625 0.823183 - -0 0.625 0.630037 -0.0625 0.625 0.582078 -0.125 0.625 0.445503 -0.1875 0.625 0.241105 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.241105 -0.375 0.625 -0.445503 -0.4375 0.625 -0.582078 -0.5 0.625 -0.630037 -0.5625 0.625 -0.582078 -0.625 0.625 -0.445503 -0.6875 0.625 -0.241105 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.241105 -0.875 0.625 0.445503 -0.9375 0.625 0.582078 -1 0.625 0.630037 - -0 0.6875 0.340973 -0.0625 0.6875 0.315018 -0.125 0.6875 0.241105 -0.1875 0.6875 0.130485 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.130485 -0.375 0.6875 -0.241105 -0.4375 0.6875 -0.315018 -0.5 0.6875 -0.340973 -0.5625 0.6875 -0.315018 -0.625 0.6875 -0.241105 -0.6875 0.6875 -0.130485 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.130485 -0.875 0.6875 0.241105 -0.9375 0.6875 0.315018 -1 0.6875 0.340973 - -0 0.75 1.66533e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 1.66533e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.340973 -0.0625 0.8125 -0.315018 -0.125 0.8125 -0.241105 -0.1875 0.8125 -0.130485 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.130485 -0.375 0.8125 0.241105 -0.4375 0.8125 0.315018 -0.5 0.8125 0.340973 -0.5625 0.8125 0.315018 -0.625 0.8125 0.241105 -0.6875 0.8125 0.130485 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.130485 -0.875 0.8125 -0.241105 -0.9375 0.8125 -0.315018 -1 0.8125 -0.340973 - -0 0.875 -0.630037 -0.0625 0.875 -0.582078 -0.125 0.875 -0.445503 -0.1875 0.875 -0.241105 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.241105 -0.375 0.875 0.445503 -0.4375 0.875 0.582078 -0.5 0.875 0.630037 -0.5625 0.875 0.582078 -0.625 0.875 0.445503 -0.6875 0.875 0.241105 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.241105 -0.875 0.875 -0.445503 -0.9375 0.875 -0.582078 -1 0.875 -0.630037 - -0 0.9375 -0.823183 -0.0625 0.9375 -0.760522 -0.125 0.9375 -0.582078 -0.1875 0.9375 -0.315018 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.315018 -0.375 0.9375 0.582078 -0.4375 0.9375 0.760522 -0.5 0.9375 0.823183 -0.5625 0.9375 0.760522 -0.625 0.9375 0.582078 -0.6875 0.9375 0.315018 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.315018 -0.875 0.9375 -0.582078 -0.9375 0.9375 -0.760522 -1 0.9375 -0.823183 - -0 1 -0.891007 -0.0625 1 -0.823183 -0.125 1 -0.630037 -0.1875 1 -0.340973 -0.25 1 -5.55112e-17 -0.3125 1 0.340973 -0.375 1 0.630037 -0.4375 1 0.823183 -0.5 1 0.891007 -0.5625 1 0.823183 -0.625 1 0.630037 -0.6875 1 0.340973 -0.75 1 1.66533e-16 -0.8125 1 -0.340973 -0.875 1 -0.630037 -0.9375 1 -0.823183 -1 1 -0.891007 - - -0 0 -0.904827 -0.0625 0 -0.835951 -0.125 0 -0.639809 -0.1875 0 -0.346262 -0.25 0 -5.55112e-17 -0.3125 0 0.346262 -0.375 0 0.639809 -0.4375 0 0.835951 -0.5 0 0.904827 -0.5625 0 0.835951 -0.625 0 0.639809 -0.6875 0 0.346262 -0.75 0 1.66533e-16 -0.8125 0 -0.346262 -0.875 0 -0.639809 -0.9375 0 -0.835951 -1 0 -0.904827 - -0 0.0625 -0.835951 -0.0625 0.0625 -0.772318 -0.125 0.0625 -0.591107 -0.1875 0.0625 -0.319905 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.319905 -0.375 0.0625 0.591107 -0.4375 0.0625 0.772318 -0.5 0.0625 0.835951 -0.5625 0.0625 0.772318 -0.625 0.0625 0.591107 -0.6875 0.0625 0.319905 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.319905 -0.875 0.0625 -0.591107 -0.9375 0.0625 -0.772318 -1 0.0625 -0.835951 - -0 0.125 -0.639809 -0.0625 0.125 -0.591107 -0.125 0.125 -0.452414 -0.1875 0.125 -0.244844 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.244844 -0.375 0.125 0.452414 -0.4375 0.125 0.591107 -0.5 0.125 0.639809 -0.5625 0.125 0.591107 -0.625 0.125 0.452414 -0.6875 0.125 0.244844 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.244844 -0.875 0.125 -0.452414 -0.9375 0.125 -0.591107 -1 0.125 -0.639809 - -0 0.1875 -0.346262 -0.0625 0.1875 -0.319905 -0.125 0.1875 -0.244844 -0.1875 0.1875 -0.132509 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.132509 -0.375 0.1875 0.244844 -0.4375 0.1875 0.319905 -0.5 0.1875 0.346262 -0.5625 0.1875 0.319905 -0.625 0.1875 0.244844 -0.6875 0.1875 0.132509 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.132509 -0.875 0.1875 -0.244844 -0.9375 0.1875 -0.319905 -1 0.1875 -0.346262 - -0 0.25 -5.55112e-17 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 5.55112e-17 -0.4375 0.25 0 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 0 -0.6875 0.25 5.55112e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -5.55112e-17 -0.875 0.25 0 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.346262 -0.0625 0.3125 0.319905 -0.125 0.3125 0.244844 -0.1875 0.3125 0.132509 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.132509 -0.375 0.3125 -0.244844 -0.4375 0.3125 -0.319905 -0.5 0.3125 -0.346262 -0.5625 0.3125 -0.319905 -0.625 0.3125 -0.244844 -0.6875 0.3125 -0.132509 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.132509 -0.875 0.3125 0.244844 -0.9375 0.3125 0.319905 -1 0.3125 0.346262 - -0 0.375 0.639809 -0.0625 0.375 0.591107 -0.125 0.375 0.452414 -0.1875 0.375 0.244844 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.244844 -0.375 0.375 -0.452414 -0.4375 0.375 -0.591107 -0.5 0.375 -0.639809 -0.5625 0.375 -0.591107 -0.625 0.375 -0.452414 -0.6875 0.375 -0.244844 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.244844 -0.875 0.375 0.452414 -0.9375 0.375 0.591107 -1 0.375 0.639809 - -0 0.4375 0.835951 -0.0625 0.4375 0.772318 -0.125 0.4375 0.591107 -0.1875 0.4375 0.319905 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.319905 -0.375 0.4375 -0.591107 -0.4375 0.4375 -0.772318 -0.5 0.4375 -0.835951 -0.5625 0.4375 -0.772318 -0.625 0.4375 -0.591107 -0.6875 0.4375 -0.319905 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.319905 -0.875 0.4375 0.591107 -0.9375 0.4375 0.772318 -1 0.4375 0.835951 - -0 0.5 0.904827 -0.0625 0.5 0.835951 -0.125 0.5 0.639809 -0.1875 0.5 0.346262 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.346262 -0.375 0.5 -0.639809 -0.4375 0.5 -0.835951 -0.5 0.5 -0.904827 -0.5625 0.5 -0.835951 -0.625 0.5 -0.639809 -0.6875 0.5 -0.346262 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.346262 -0.875 0.5 0.639809 -0.9375 0.5 0.835951 -1 0.5 0.904827 - -0 0.5625 0.835951 -0.0625 0.5625 0.772318 -0.125 0.5625 0.591107 -0.1875 0.5625 0.319905 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.319905 -0.375 0.5625 -0.591107 -0.4375 0.5625 -0.772318 -0.5 0.5625 -0.835951 -0.5625 0.5625 -0.772318 -0.625 0.5625 -0.591107 -0.6875 0.5625 -0.319905 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.319905 -0.875 0.5625 0.591107 -0.9375 0.5625 0.772318 -1 0.5625 0.835951 - -0 0.625 0.639809 -0.0625 0.625 0.591107 -0.125 0.625 0.452414 -0.1875 0.625 0.244844 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.244844 -0.375 0.625 -0.452414 -0.4375 0.625 -0.591107 -0.5 0.625 -0.639809 -0.5625 0.625 -0.591107 -0.625 0.625 -0.452414 -0.6875 0.625 -0.244844 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.244844 -0.875 0.625 0.452414 -0.9375 0.625 0.591107 -1 0.625 0.639809 - -0 0.6875 0.346262 -0.0625 0.6875 0.319905 -0.125 0.6875 0.244844 -0.1875 0.6875 0.132509 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.132509 -0.375 0.6875 -0.244844 -0.4375 0.6875 -0.319905 -0.5 0.6875 -0.346262 -0.5625 0.6875 -0.319905 -0.625 0.6875 -0.244844 -0.6875 0.6875 -0.132509 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.132509 -0.875 0.6875 0.244844 -0.9375 0.6875 0.319905 -1 0.6875 0.346262 - -0 0.75 1.66533e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -8.32667e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -2.22045e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -2.46519e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 1.66533e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.346262 -0.0625 0.8125 -0.319905 -0.125 0.8125 -0.244844 -0.1875 0.8125 -0.132509 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.132509 -0.375 0.8125 0.244844 -0.4375 0.8125 0.319905 -0.5 0.8125 0.346262 -0.5625 0.8125 0.319905 -0.625 0.8125 0.244844 -0.6875 0.8125 0.132509 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.132509 -0.875 0.8125 -0.244844 -0.9375 0.8125 -0.319905 -1 0.8125 -0.346262 - -0 0.875 -0.639809 -0.0625 0.875 -0.591107 -0.125 0.875 -0.452414 -0.1875 0.875 -0.244844 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.244844 -0.375 0.875 0.452414 -0.4375 0.875 0.591107 -0.5 0.875 0.639809 -0.5625 0.875 0.591107 -0.625 0.875 0.452414 -0.6875 0.875 0.244844 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.244844 -0.875 0.875 -0.452414 -0.9375 0.875 -0.591107 -1 0.875 -0.639809 - -0 0.9375 -0.835951 -0.0625 0.9375 -0.772318 -0.125 0.9375 -0.591107 -0.1875 0.9375 -0.319905 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.319905 -0.375 0.9375 0.591107 -0.4375 0.9375 0.772318 -0.5 0.9375 0.835951 -0.5625 0.9375 0.772318 -0.625 0.9375 0.591107 -0.6875 0.9375 0.319905 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.319905 -0.875 0.9375 -0.591107 -0.9375 0.9375 -0.772318 -1 0.9375 -0.835951 - -0 1 -0.904827 -0.0625 1 -0.835951 -0.125 1 -0.639809 -0.1875 1 -0.346262 -0.25 1 -5.55112e-17 -0.3125 1 0.346262 -0.375 1 0.639809 -0.4375 1 0.835951 -0.5 1 0.904827 -0.5625 1 0.835951 -0.625 1 0.639809 -0.6875 1 0.346262 -0.75 1 1.66533e-16 -0.8125 1 -0.346262 -0.875 1 -0.639809 -0.9375 1 -0.835951 -1 1 -0.904827 - - -0 0 -0.917755 -0.0625 0 -0.847895 -0.125 0 -0.648951 -0.1875 0 -0.351209 -0.25 0 -1.11022e-16 -0.3125 0 0.351209 -0.375 0 0.648951 -0.4375 0 0.847895 -0.5 0 0.917755 -0.5625 0 0.847895 -0.625 0 0.648951 -0.6875 0 0.351209 -0.75 0 1.11022e-16 -0.8125 0 -0.351209 -0.875 0 -0.648951 -0.9375 0 -0.847895 -1 0 -0.917755 - -0 0.0625 -0.847895 -0.0625 0.0625 -0.783353 -0.125 0.0625 -0.599552 -0.1875 0.0625 -0.324475 -0.25 0.0625 -1.04083e-16 -0.3125 0.0625 0.324475 -0.375 0.0625 0.599552 -0.4375 0.0625 0.783353 -0.5 0.0625 0.847895 -0.5625 0.0625 0.783353 -0.625 0.0625 0.599552 -0.6875 0.0625 0.324475 -0.75 0.0625 1.17961e-16 -0.8125 0.0625 -0.324475 -0.875 0.0625 -0.599552 -0.9375 0.0625 -0.783353 -1 0.0625 -0.847895 - -0 0.125 -0.648951 -0.0625 0.125 -0.599552 -0.125 0.125 -0.458877 -0.1875 0.125 -0.248343 -0.25 0.125 -9.71445e-17 -0.3125 0.125 0.248343 -0.375 0.125 0.458877 -0.4375 0.125 0.599552 -0.5 0.125 0.648951 -0.5625 0.125 0.599552 -0.625 0.125 0.458877 -0.6875 0.125 0.248343 -0.75 0.125 6.93889e-17 -0.8125 0.125 -0.248343 -0.875 0.125 -0.458877 -0.9375 0.125 -0.599552 -1 0.125 -0.648951 - -0 0.1875 -0.351209 -0.0625 0.1875 -0.324475 -0.125 0.1875 -0.248343 -0.1875 0.1875 -0.134402 -0.25 0.1875 -4.85723e-17 -0.3125 0.1875 0.134402 -0.375 0.1875 0.248343 -0.4375 0.1875 0.324475 -0.5 0.1875 0.351209 -0.5625 0.1875 0.324475 -0.625 0.1875 0.248343 -0.6875 0.1875 0.134402 -0.75 0.1875 3.46945e-17 -0.8125 0.1875 -0.134402 -0.875 0.1875 -0.248343 -0.9375 0.1875 -0.324475 -1 0.1875 -0.351209 - -0 0.25 -1.11022e-16 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 0 -0.25 0.25 0 -0.3125 0.25 0 -0.375 0.25 5.55112e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 1.11022e-16 -0.5625 0.25 0 -0.625 0.25 5.55112e-17 -0.6875 0.25 5.55112e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 0 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -1.11022e-16 -1 0.25 -1.11022e-16 - -0 0.3125 0.351209 -0.0625 0.3125 0.324475 -0.125 0.3125 0.248343 -0.1875 0.3125 0.134402 -0.25 0.3125 4.16334e-17 -0.3125 0.3125 -0.134402 -0.375 0.3125 -0.248343 -0.4375 0.3125 -0.324475 -0.5 0.3125 -0.351209 -0.5625 0.3125 -0.324475 -0.625 0.3125 -0.248343 -0.6875 0.3125 -0.134402 -0.75 0.3125 -4.16334e-17 -0.8125 0.3125 0.134402 -0.875 0.3125 0.248343 -0.9375 0.3125 0.324475 -1 0.3125 0.351209 - -0 0.375 0.648951 -0.0625 0.375 0.599552 -0.125 0.375 0.458877 -0.1875 0.375 0.248343 -0.25 0.375 8.32667e-17 -0.3125 0.375 -0.248343 -0.375 0.375 -0.458877 -0.4375 0.375 -0.599552 -0.5 0.375 -0.648951 -0.5625 0.375 -0.599552 -0.625 0.375 -0.458877 -0.6875 0.375 -0.248343 -0.75 0.375 -8.32667e-17 -0.8125 0.375 0.248343 -0.875 0.375 0.458877 -0.9375 0.375 0.599552 -1 0.375 0.648951 - -0 0.4375 0.847895 -0.0625 0.4375 0.783353 -0.125 0.4375 0.599552 -0.1875 0.4375 0.324475 -0.25 0.4375 9.71445e-17 -0.3125 0.4375 -0.324475 -0.375 0.4375 -0.599552 -0.4375 0.4375 -0.783353 -0.5 0.4375 -0.847895 -0.5625 0.4375 -0.783353 -0.625 0.4375 -0.599552 -0.6875 0.4375 -0.324475 -0.75 0.4375 -1.249e-16 -0.8125 0.4375 0.324475 -0.875 0.4375 0.599552 -0.9375 0.4375 0.783353 -1 0.4375 0.847895 - -0 0.5 0.917755 -0.0625 0.5 0.847895 -0.125 0.5 0.648951 -0.1875 0.5 0.351209 -0.25 0.5 1.11022e-16 -0.3125 0.5 -0.351209 -0.375 0.5 -0.648951 -0.4375 0.5 -0.847895 -0.5 0.5 -0.917755 -0.5625 0.5 -0.847895 -0.625 0.5 -0.648951 -0.6875 0.5 -0.351209 -0.75 0.5 -1.11022e-16 -0.8125 0.5 0.351209 -0.875 0.5 0.648951 -0.9375 0.5 0.847895 -1 0.5 0.917755 - -0 0.5625 0.847895 -0.0625 0.5625 0.783353 -0.125 0.5625 0.599552 -0.1875 0.5625 0.324475 -0.25 0.5625 9.02056e-17 -0.3125 0.5625 -0.324475 -0.375 0.5625 -0.599552 -0.4375 0.5625 -0.783353 -0.5 0.5625 -0.847895 -0.5625 0.5625 -0.783353 -0.625 0.5625 -0.599552 -0.6875 0.5625 -0.324475 -0.75 0.5625 -1.31839e-16 -0.8125 0.5625 0.324475 -0.875 0.5625 0.599552 -0.9375 0.5625 0.783353 -1 0.5625 0.847895 - -0 0.625 0.648951 -0.0625 0.625 0.599552 -0.125 0.625 0.458877 -0.1875 0.625 0.248343 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.248343 -0.375 0.625 -0.458877 -0.4375 0.625 -0.599552 -0.5 0.625 -0.648951 -0.5625 0.625 -0.599552 -0.625 0.625 -0.458877 -0.6875 0.625 -0.248343 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.248343 -0.875 0.625 0.458877 -0.9375 0.625 0.599552 -1 0.625 0.648951 - -0 0.6875 0.351209 -0.0625 0.6875 0.324475 -0.125 0.6875 0.248343 -0.1875 0.6875 0.134402 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.134402 -0.375 0.6875 -0.248343 -0.4375 0.6875 -0.324475 -0.5 0.6875 -0.351209 -0.5625 0.6875 -0.324475 -0.625 0.6875 -0.248343 -0.6875 0.6875 -0.134402 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.134402 -0.875 0.6875 0.248343 -0.9375 0.6875 0.324475 -1 0.6875 0.351209 - -0 0.75 1.11022e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -8.32667e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 1.11022e-16 -1 0.75 1.11022e-16 - -0 0.8125 -0.351209 -0.0625 0.8125 -0.324475 -0.125 0.8125 -0.248343 -0.1875 0.8125 -0.134402 -0.25 0.8125 -4.16334e-17 -0.3125 0.8125 0.134402 -0.375 0.8125 0.248343 -0.4375 0.8125 0.324475 -0.5 0.8125 0.351209 -0.5625 0.8125 0.324475 -0.625 0.8125 0.248343 -0.6875 0.8125 0.134402 -0.75 0.8125 4.16334e-17 -0.8125 0.8125 -0.134402 -0.875 0.8125 -0.248343 -0.9375 0.8125 -0.324475 -1 0.8125 -0.351209 - -0 0.875 -0.648951 -0.0625 0.875 -0.599552 -0.125 0.875 -0.458877 -0.1875 0.875 -0.248343 -0.25 0.875 -8.32667e-17 -0.3125 0.875 0.248343 -0.375 0.875 0.458877 -0.4375 0.875 0.599552 -0.5 0.875 0.648951 -0.5625 0.875 0.599552 -0.625 0.875 0.458877 -0.6875 0.875 0.248343 -0.75 0.875 8.32667e-17 -0.8125 0.875 -0.248343 -0.875 0.875 -0.458877 -0.9375 0.875 -0.599552 -1 0.875 -0.648951 - -0 0.9375 -0.847895 -0.0625 0.9375 -0.783353 -0.125 0.9375 -0.599552 -0.1875 0.9375 -0.324475 -0.25 0.9375 -9.71445e-17 -0.3125 0.9375 0.324475 -0.375 0.9375 0.599552 -0.4375 0.9375 0.783353 -0.5 0.9375 0.847895 -0.5625 0.9375 0.783353 -0.625 0.9375 0.599552 -0.6875 0.9375 0.324475 -0.75 0.9375 1.249e-16 -0.8125 0.9375 -0.324475 -0.875 0.9375 -0.599552 -0.9375 0.9375 -0.783353 -1 0.9375 -0.847895 - -0 1 -0.917755 -0.0625 1 -0.847895 -0.125 1 -0.648951 -0.1875 1 -0.351209 -0.25 1 -1.11022e-16 -0.3125 1 0.351209 -0.375 1 0.648951 -0.4375 1 0.847895 -0.5 1 0.917755 -0.5625 1 0.847895 -0.625 1 0.648951 -0.6875 1 0.351209 -0.75 1 1.11022e-16 -0.8125 1 -0.351209 -0.875 1 -0.648951 -0.9375 1 -0.847895 -1 1 -0.917755 - - -0 0 -0.929776 -0.0625 0 -0.859001 -0.125 0 -0.657451 -0.1875 0 -0.35581 -0.25 0 -5.55112e-17 -0.3125 0 0.35581 -0.375 0 0.657451 -0.4375 0 0.859001 -0.5 0 0.929776 -0.5625 0 0.859001 -0.625 0 0.657451 -0.6875 0 0.35581 -0.75 0 1.66533e-16 -0.8125 0 -0.35581 -0.875 0 -0.657451 -0.9375 0 -0.859001 -1 0 -0.929776 - -0 0.0625 -0.859001 -0.0625 0.0625 -0.793614 -0.125 0.0625 -0.607406 -0.1875 0.0625 -0.328726 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.328726 -0.375 0.0625 0.607406 -0.4375 0.0625 0.793614 -0.5 0.0625 0.859001 -0.5625 0.0625 0.793614 -0.625 0.0625 0.607406 -0.6875 0.0625 0.328726 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.328726 -0.875 0.0625 -0.607406 -0.9375 0.0625 -0.793614 -1 0.0625 -0.859001 - -0 0.125 -0.657451 -0.0625 0.125 -0.607406 -0.125 0.125 -0.464888 -0.1875 0.125 -0.251596 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.251596 -0.375 0.125 0.464888 -0.4375 0.125 0.607406 -0.5 0.125 0.657451 -0.5625 0.125 0.607406 -0.625 0.125 0.464888 -0.6875 0.125 0.251596 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.251596 -0.875 0.125 -0.464888 -0.9375 0.125 -0.607406 -1 0.125 -0.657451 - -0 0.1875 -0.35581 -0.0625 0.1875 -0.328726 -0.125 0.1875 -0.251596 -0.1875 0.1875 -0.136163 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.136163 -0.375 0.1875 0.251596 -0.4375 0.1875 0.328726 -0.5 0.1875 0.35581 -0.5625 0.1875 0.328726 -0.625 0.1875 0.251596 -0.6875 0.1875 0.136163 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.136163 -0.875 0.1875 -0.251596 -0.9375 0.1875 -0.328726 -1 0.1875 -0.35581 - -0 0.25 -5.55112e-17 -0.0625 0.25 -1.11022e-16 -0.125 0.25 -5.55112e-17 -0.1875 0.25 -2.77556e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 1.2326e-32 -0.8125 0.25 -2.77556e-17 -0.875 0.25 0 -0.9375 0.25 0 -1 0.25 -5.55112e-17 - -0 0.3125 0.35581 -0.0625 0.3125 0.328726 -0.125 0.3125 0.251596 -0.1875 0.3125 0.136163 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.136163 -0.375 0.3125 -0.251596 -0.4375 0.3125 -0.328726 -0.5 0.3125 -0.35581 -0.5625 0.3125 -0.328726 -0.625 0.3125 -0.251596 -0.6875 0.3125 -0.136163 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.136163 -0.875 0.3125 0.251596 -0.9375 0.3125 0.328726 -1 0.3125 0.35581 - -0 0.375 0.657451 -0.0625 0.375 0.607406 -0.125 0.375 0.464888 -0.1875 0.375 0.251596 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.251596 -0.375 0.375 -0.464888 -0.4375 0.375 -0.607406 -0.5 0.375 -0.657451 -0.5625 0.375 -0.607406 -0.625 0.375 -0.464888 -0.6875 0.375 -0.251596 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.251596 -0.875 0.375 0.464888 -0.9375 0.375 0.607406 -1 0.375 0.657451 - -0 0.4375 0.859001 -0.0625 0.4375 0.793614 -0.125 0.4375 0.607406 -0.1875 0.4375 0.328726 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.328726 -0.375 0.4375 -0.607406 -0.4375 0.4375 -0.793614 -0.5 0.4375 -0.859001 -0.5625 0.4375 -0.793614 -0.625 0.4375 -0.607406 -0.6875 0.4375 -0.328726 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.328726 -0.875 0.4375 0.607406 -0.9375 0.4375 0.793614 -1 0.4375 0.859001 - -0 0.5 0.929776 -0.0625 0.5 0.859001 -0.125 0.5 0.657451 -0.1875 0.5 0.35581 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.35581 -0.375 0.5 -0.657451 -0.4375 0.5 -0.859001 -0.5 0.5 -0.929776 -0.5625 0.5 -0.859001 -0.625 0.5 -0.657451 -0.6875 0.5 -0.35581 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.35581 -0.875 0.5 0.657451 -0.9375 0.5 0.859001 -1 0.5 0.929776 - -0 0.5625 0.859001 -0.0625 0.5625 0.793614 -0.125 0.5625 0.607406 -0.1875 0.5625 0.328726 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.328726 -0.375 0.5625 -0.607406 -0.4375 0.5625 -0.793614 -0.5 0.5625 -0.859001 -0.5625 0.5625 -0.793614 -0.625 0.5625 -0.607406 -0.6875 0.5625 -0.328726 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.328726 -0.875 0.5625 0.607406 -0.9375 0.5625 0.793614 -1 0.5625 0.859001 - -0 0.625 0.657451 -0.0625 0.625 0.607406 -0.125 0.625 0.464888 -0.1875 0.625 0.251596 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.251596 -0.375 0.625 -0.464888 -0.4375 0.625 -0.607406 -0.5 0.625 -0.657451 -0.5625 0.625 -0.607406 -0.625 0.625 -0.464888 -0.6875 0.625 -0.251596 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.251596 -0.875 0.625 0.464888 -0.9375 0.625 0.607406 -1 0.625 0.657451 - -0 0.6875 0.35581 -0.0625 0.6875 0.328726 -0.125 0.6875 0.251596 -0.1875 0.6875 0.136163 -0.25 0.6875 3.29597e-17 -0.3125 0.6875 -0.136163 -0.375 0.6875 -0.251596 -0.4375 0.6875 -0.328726 -0.5 0.6875 -0.35581 -0.5625 0.6875 -0.328726 -0.625 0.6875 -0.251596 -0.6875 0.6875 -0.136163 -0.75 0.6875 -5.0307e-17 -0.8125 0.6875 0.136163 -0.875 0.6875 0.251596 -0.9375 0.6875 0.328726 -1 0.6875 0.35581 - -0 0.75 1.66533e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -8.32667e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 2.22045e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.35581 -0.0625 0.8125 -0.328726 -0.125 0.8125 -0.251596 -0.1875 0.8125 -0.136163 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.136163 -0.375 0.8125 0.251596 -0.4375 0.8125 0.328726 -0.5 0.8125 0.35581 -0.5625 0.8125 0.328726 -0.625 0.8125 0.251596 -0.6875 0.8125 0.136163 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.136163 -0.875 0.8125 -0.251596 -0.9375 0.8125 -0.328726 -1 0.8125 -0.35581 - -0 0.875 -0.657451 -0.0625 0.875 -0.607406 -0.125 0.875 -0.464888 -0.1875 0.875 -0.251596 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.251596 -0.375 0.875 0.464888 -0.4375 0.875 0.607406 -0.5 0.875 0.657451 -0.5625 0.875 0.607406 -0.625 0.875 0.464888 -0.6875 0.875 0.251596 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.251596 -0.875 0.875 -0.464888 -0.9375 0.875 -0.607406 -1 0.875 -0.657451 - -0 0.9375 -0.859001 -0.0625 0.9375 -0.793614 -0.125 0.9375 -0.607406 -0.1875 0.9375 -0.328726 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.328726 -0.375 0.9375 0.607406 -0.4375 0.9375 0.793614 -0.5 0.9375 0.859001 -0.5625 0.9375 0.793614 -0.625 0.9375 0.607406 -0.6875 0.9375 0.328726 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.328726 -0.875 0.9375 -0.607406 -0.9375 0.9375 -0.793614 -1 0.9375 -0.859001 - -0 1 -0.929776 -0.0625 1 -0.859001 -0.125 1 -0.657451 -0.1875 1 -0.35581 -0.25 1 -5.55112e-17 -0.3125 1 0.35581 -0.375 1 0.657451 -0.4375 1 0.859001 -0.5 1 0.929776 -0.5625 1 0.859001 -0.625 1 0.657451 -0.6875 1 0.35581 -0.75 1 1.66533e-16 -0.8125 1 -0.35581 -0.875 1 -0.657451 -0.9375 1 -0.859001 -1 1 -0.929776 - - -0 0 -0.940881 -0.0625 0 -0.86926 -0.125 0 -0.665303 -0.1875 0 -0.360059 -0.25 0 0 -0.3125 0 0.360059 -0.375 0 0.665303 -0.4375 0 0.86926 -0.5 0 0.940881 -0.5625 0 0.86926 -0.625 0 0.665303 -0.6875 0 0.360059 -0.75 0 2.22045e-16 -0.8125 0 -0.360059 -0.875 0 -0.665303 -0.9375 0 -0.86926 -1 0 -0.940881 - -0 0.0625 -0.86926 -0.0625 0.0625 -0.803092 -0.125 0.0625 -0.61466 -0.1875 0.0625 -0.332652 -0.25 0.0625 -2.08167e-17 -0.3125 0.0625 0.332652 -0.375 0.0625 0.61466 -0.4375 0.0625 0.803092 -0.5 0.0625 0.86926 -0.5625 0.0625 0.803092 -0.625 0.0625 0.61466 -0.6875 0.0625 0.332652 -0.75 0.0625 2.01228e-16 -0.8125 0.0625 -0.332652 -0.875 0.0625 -0.61466 -0.9375 0.0625 -0.803092 -1 0.0625 -0.86926 - -0 0.125 -0.665303 -0.0625 0.125 -0.61466 -0.125 0.125 -0.47044 -0.1875 0.125 -0.254601 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.254601 -0.375 0.125 0.47044 -0.4375 0.125 0.61466 -0.5 0.125 0.665303 -0.5625 0.125 0.61466 -0.625 0.125 0.47044 -0.6875 0.125 0.254601 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.254601 -0.875 0.125 -0.47044 -0.9375 0.125 -0.61466 -1 0.125 -0.665303 - -0 0.1875 -0.360059 -0.0625 0.1875 -0.332652 -0.125 0.1875 -0.254601 -0.1875 0.1875 -0.137789 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.137789 -0.375 0.1875 0.254601 -0.4375 0.1875 0.332652 -0.5 0.1875 0.360059 -0.5625 0.1875 0.332652 -0.625 0.1875 0.254601 -0.6875 0.1875 0.137789 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.137789 -0.875 0.1875 -0.254601 -0.9375 0.1875 -0.332652 -1 0.1875 -0.360059 - -0 0.25 0 -0.0625 0.25 0 -0.125 0.25 -5.55112e-17 -0.1875 0.25 0 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 5.55112e-17 -0.5 0.25 1.11022e-16 -0.5625 0.25 5.55112e-17 -0.625 0.25 0 -0.6875 0.25 5.55112e-17 -0.75 0.25 0 -0.8125 0.25 -5.55112e-17 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -5.55112e-17 -1 0.25 0 - -0 0.3125 0.360059 -0.0625 0.3125 0.332652 -0.125 0.3125 0.254601 -0.1875 0.3125 0.137789 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.137789 -0.375 0.3125 -0.254601 -0.4375 0.3125 -0.332652 -0.5 0.3125 -0.360059 -0.5625 0.3125 -0.332652 -0.625 0.3125 -0.254601 -0.6875 0.3125 -0.137789 -0.75 0.3125 -6.93889e-17 -0.8125 0.3125 0.137789 -0.875 0.3125 0.254601 -0.9375 0.3125 0.332652 -1 0.3125 0.360059 - -0 0.375 0.665303 -0.0625 0.375 0.61466 -0.125 0.375 0.47044 -0.1875 0.375 0.254601 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.254601 -0.375 0.375 -0.47044 -0.4375 0.375 -0.61466 -0.5 0.375 -0.665303 -0.5625 0.375 -0.61466 -0.625 0.375 -0.47044 -0.6875 0.375 -0.254601 -0.75 0.375 -1.38778e-16 -0.8125 0.375 0.254601 -0.875 0.375 0.47044 -0.9375 0.375 0.61466 -1 0.375 0.665303 - -0 0.4375 0.86926 -0.0625 0.4375 0.803092 -0.125 0.4375 0.61466 -0.1875 0.4375 0.332652 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.332652 -0.375 0.4375 -0.61466 -0.4375 0.4375 -0.803092 -0.5 0.4375 -0.86926 -0.5625 0.4375 -0.803092 -0.625 0.4375 -0.61466 -0.6875 0.4375 -0.332652 -0.75 0.4375 -2.08167e-16 -0.8125 0.4375 0.332652 -0.875 0.4375 0.61466 -0.9375 0.4375 0.803092 -1 0.4375 0.86926 - -0 0.5 0.940881 -0.0625 0.5 0.86926 -0.125 0.5 0.665303 -0.1875 0.5 0.360059 -0.25 0.5 0 -0.3125 0.5 -0.360059 -0.375 0.5 -0.665303 -0.4375 0.5 -0.86926 -0.5 0.5 -0.940881 -0.5625 0.5 -0.86926 -0.625 0.5 -0.665303 -0.6875 0.5 -0.360059 -0.75 0.5 -2.22045e-16 -0.8125 0.5 0.360059 -0.875 0.5 0.665303 -0.9375 0.5 0.86926 -1 0.5 0.940881 - -0 0.5625 0.86926 -0.0625 0.5625 0.803092 -0.125 0.5625 0.61466 -0.1875 0.5625 0.332652 -0.25 0.5625 6.93889e-18 -0.3125 0.5625 -0.332652 -0.375 0.5625 -0.61466 -0.4375 0.5625 -0.803092 -0.5 0.5625 -0.86926 -0.5625 0.5625 -0.803092 -0.625 0.5625 -0.61466 -0.6875 0.5625 -0.332652 -0.75 0.5625 -2.15106e-16 -0.8125 0.5625 0.332652 -0.875 0.5625 0.61466 -0.9375 0.5625 0.803092 -1 0.5625 0.86926 - -0 0.625 0.665303 -0.0625 0.625 0.61466 -0.125 0.625 0.47044 -0.1875 0.625 0.254601 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.254601 -0.375 0.625 -0.47044 -0.4375 0.625 -0.61466 -0.5 0.625 -0.665303 -0.5625 0.625 -0.61466 -0.625 0.625 -0.47044 -0.6875 0.625 -0.254601 -0.75 0.625 -1.52656e-16 -0.8125 0.625 0.254601 -0.875 0.625 0.47044 -0.9375 0.625 0.61466 -1 0.625 0.665303 - -0 0.6875 0.360059 -0.0625 0.6875 0.332652 -0.125 0.6875 0.254601 -0.1875 0.6875 0.137789 -0.25 0.6875 5.20417e-18 -0.3125 0.6875 -0.137789 -0.375 0.6875 -0.254601 -0.4375 0.6875 -0.332652 -0.5 0.6875 -0.360059 -0.5625 0.6875 -0.332652 -0.625 0.6875 -0.254601 -0.6875 0.6875 -0.137789 -0.75 0.6875 -7.80626e-17 -0.8125 0.6875 0.137789 -0.875 0.6875 0.254601 -0.9375 0.6875 0.332652 -1 0.6875 0.360059 - -0 0.75 2.22045e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -4.93038e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 1.66533e-16 -1 0.75 2.22045e-16 - -0 0.8125 -0.360059 -0.0625 0.8125 -0.332652 -0.125 0.8125 -0.254601 -0.1875 0.8125 -0.137789 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.137789 -0.375 0.8125 0.254601 -0.4375 0.8125 0.332652 -0.5 0.8125 0.360059 -0.5625 0.8125 0.332652 -0.625 0.8125 0.254601 -0.6875 0.8125 0.137789 -0.75 0.8125 6.93889e-17 -0.8125 0.8125 -0.137789 -0.875 0.8125 -0.254601 -0.9375 0.8125 -0.332652 -1 0.8125 -0.360059 - -0 0.875 -0.665303 -0.0625 0.875 -0.61466 -0.125 0.875 -0.47044 -0.1875 0.875 -0.254601 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.254601 -0.375 0.875 0.47044 -0.4375 0.875 0.61466 -0.5 0.875 0.665303 -0.5625 0.875 0.61466 -0.625 0.875 0.47044 -0.6875 0.875 0.254601 -0.75 0.875 1.38778e-16 -0.8125 0.875 -0.254601 -0.875 0.875 -0.47044 -0.9375 0.875 -0.61466 -1 0.875 -0.665303 - -0 0.9375 -0.86926 -0.0625 0.9375 -0.803092 -0.125 0.9375 -0.61466 -0.1875 0.9375 -0.332652 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.332652 -0.375 0.9375 0.61466 -0.4375 0.9375 0.803092 -0.5 0.9375 0.86926 -0.5625 0.9375 0.803092 -0.625 0.9375 0.61466 -0.6875 0.9375 0.332652 -0.75 0.9375 2.08167e-16 -0.8125 0.9375 -0.332652 -0.875 0.9375 -0.61466 -0.9375 0.9375 -0.803092 -1 0.9375 -0.86926 - -0 1 -0.940881 -0.0625 1 -0.86926 -0.125 1 -0.665303 -0.1875 1 -0.360059 -0.25 1 0 -0.3125 1 0.360059 -0.375 1 0.665303 -0.4375 1 0.86926 -0.5 1 0.940881 -0.5625 1 0.86926 -0.625 1 0.665303 -0.6875 1 0.360059 -0.75 1 2.22045e-16 -0.8125 1 -0.360059 -0.875 1 -0.665303 -0.9375 1 -0.86926 -1 1 -0.940881 - - -0 0 -0.951057 -0.0625 0 -0.878662 -0.125 0 -0.672499 -0.1875 0 -0.363954 -0.25 0 0 -0.3125 0 0.363954 -0.375 0 0.672499 -0.4375 0 0.878662 -0.5 0 0.951057 -0.5625 0 0.878662 -0.625 0 0.672499 -0.6875 0 0.363954 -0.75 0 2.22045e-16 -0.8125 0 -0.363954 -0.875 0 -0.672499 -0.9375 0 -0.878662 -1 0 -0.951057 - -0 0.0625 -0.878662 -0.0625 0.0625 -0.811778 -0.125 0.0625 -0.621308 -0.1875 0.0625 -0.336249 -0.25 0.0625 -2.08167e-17 -0.3125 0.0625 0.336249 -0.375 0.0625 0.621308 -0.4375 0.0625 0.811778 -0.5 0.0625 0.878662 -0.5625 0.0625 0.811778 -0.625 0.0625 0.621308 -0.6875 0.0625 0.336249 -0.75 0.0625 2.01228e-16 -0.8125 0.0625 -0.336249 -0.875 0.0625 -0.621308 -0.9375 0.0625 -0.811778 -1 0.0625 -0.878662 - -0 0.125 -0.672499 -0.0625 0.125 -0.621308 -0.125 0.125 -0.475528 -0.1875 0.125 -0.257354 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.257354 -0.375 0.125 0.475528 -0.4375 0.125 0.621308 -0.5 0.125 0.672499 -0.5625 0.125 0.621308 -0.625 0.125 0.475528 -0.6875 0.125 0.257354 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.257354 -0.875 0.125 -0.475528 -0.9375 0.125 -0.621308 -1 0.125 -0.672499 - -0 0.1875 -0.363954 -0.0625 0.1875 -0.336249 -0.125 0.1875 -0.257354 -0.1875 0.1875 -0.139279 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.139279 -0.375 0.1875 0.257354 -0.4375 0.1875 0.336249 -0.5 0.1875 0.363954 -0.5625 0.1875 0.336249 -0.625 0.1875 0.257354 -0.6875 0.1875 0.139279 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.139279 -0.875 0.1875 -0.257354 -0.9375 0.1875 -0.336249 -1 0.1875 -0.363954 - -0 0.25 0 -0.0625 0.25 -1.11022e-16 -0.125 0.25 -1.11022e-16 -0.1875 0.25 -5.55112e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 1.11022e-16 -0.4375 0.25 5.55112e-17 -0.5 0.25 1.11022e-16 -0.5625 0.25 0 -0.625 0.25 1.11022e-16 -0.6875 0.25 2.77556e-17 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 -5.55112e-17 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 0.363954 -0.0625 0.3125 0.336249 -0.125 0.3125 0.257354 -0.1875 0.3125 0.139279 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.139279 -0.375 0.3125 -0.257354 -0.4375 0.3125 -0.336249 -0.5 0.3125 -0.363954 -0.5625 0.3125 -0.336249 -0.625 0.3125 -0.257354 -0.6875 0.3125 -0.139279 -0.75 0.3125 -6.93889e-17 -0.8125 0.3125 0.139279 -0.875 0.3125 0.257354 -0.9375 0.3125 0.336249 -1 0.3125 0.363954 - -0 0.375 0.672499 -0.0625 0.375 0.621308 -0.125 0.375 0.475528 -0.1875 0.375 0.257354 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.257354 -0.375 0.375 -0.475528 -0.4375 0.375 -0.621308 -0.5 0.375 -0.672499 -0.5625 0.375 -0.621308 -0.625 0.375 -0.475528 -0.6875 0.375 -0.257354 -0.75 0.375 -1.38778e-16 -0.8125 0.375 0.257354 -0.875 0.375 0.475528 -0.9375 0.375 0.621308 -1 0.375 0.672499 - -0 0.4375 0.878662 -0.0625 0.4375 0.811778 -0.125 0.4375 0.621308 -0.1875 0.4375 0.336249 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.336249 -0.375 0.4375 -0.621308 -0.4375 0.4375 -0.811778 -0.5 0.4375 -0.878662 -0.5625 0.4375 -0.811778 -0.625 0.4375 -0.621308 -0.6875 0.4375 -0.336249 -0.75 0.4375 -2.08167e-16 -0.8125 0.4375 0.336249 -0.875 0.4375 0.621308 -0.9375 0.4375 0.811778 -1 0.4375 0.878662 - -0 0.5 0.951057 -0.0625 0.5 0.878662 -0.125 0.5 0.672499 -0.1875 0.5 0.363954 -0.25 0.5 0 -0.3125 0.5 -0.363954 -0.375 0.5 -0.672499 -0.4375 0.5 -0.878662 -0.5 0.5 -0.951057 -0.5625 0.5 -0.878662 -0.625 0.5 -0.672499 -0.6875 0.5 -0.363954 -0.75 0.5 -2.22045e-16 -0.8125 0.5 0.363954 -0.875 0.5 0.672499 -0.9375 0.5 0.878662 -1 0.5 0.951057 - -0 0.5625 0.878662 -0.0625 0.5625 0.811778 -0.125 0.5625 0.621308 -0.1875 0.5625 0.336249 -0.25 0.5625 6.93889e-18 -0.3125 0.5625 -0.336249 -0.375 0.5625 -0.621308 -0.4375 0.5625 -0.811778 -0.5 0.5625 -0.878662 -0.5625 0.5625 -0.811778 -0.625 0.5625 -0.621308 -0.6875 0.5625 -0.336249 -0.75 0.5625 -2.15106e-16 -0.8125 0.5625 0.336249 -0.875 0.5625 0.621308 -0.9375 0.5625 0.811778 -1 0.5625 0.878662 - -0 0.625 0.672499 -0.0625 0.625 0.621308 -0.125 0.625 0.475528 -0.1875 0.625 0.257354 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.257354 -0.375 0.625 -0.475528 -0.4375 0.625 -0.621308 -0.5 0.625 -0.672499 -0.5625 0.625 -0.621308 -0.625 0.625 -0.475528 -0.6875 0.625 -0.257354 -0.75 0.625 -1.52656e-16 -0.8125 0.625 0.257354 -0.875 0.625 0.475528 -0.9375 0.625 0.621308 -1 0.625 0.672499 - -0 0.6875 0.363954 -0.0625 0.6875 0.336249 -0.125 0.6875 0.257354 -0.1875 0.6875 0.139279 -0.25 0.6875 5.20417e-18 -0.3125 0.6875 -0.139279 -0.375 0.6875 -0.257354 -0.4375 0.6875 -0.336249 -0.5 0.6875 -0.363954 -0.5625 0.6875 -0.336249 -0.625 0.6875 -0.257354 -0.6875 0.6875 -0.139279 -0.75 0.6875 -7.80626e-17 -0.8125 0.6875 0.139279 -0.875 0.6875 0.257354 -0.9375 0.6875 0.336249 -1 0.6875 0.363954 - -0 0.75 2.22045e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -4.93038e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 2.22045e-16 -1 0.75 2.22045e-16 - -0 0.8125 -0.363954 -0.0625 0.8125 -0.336249 -0.125 0.8125 -0.257354 -0.1875 0.8125 -0.139279 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.139279 -0.375 0.8125 0.257354 -0.4375 0.8125 0.336249 -0.5 0.8125 0.363954 -0.5625 0.8125 0.336249 -0.625 0.8125 0.257354 -0.6875 0.8125 0.139279 -0.75 0.8125 6.93889e-17 -0.8125 0.8125 -0.139279 -0.875 0.8125 -0.257354 -0.9375 0.8125 -0.336249 -1 0.8125 -0.363954 - -0 0.875 -0.672499 -0.0625 0.875 -0.621308 -0.125 0.875 -0.475528 -0.1875 0.875 -0.257354 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.257354 -0.375 0.875 0.475528 -0.4375 0.875 0.621308 -0.5 0.875 0.672499 -0.5625 0.875 0.621308 -0.625 0.875 0.475528 -0.6875 0.875 0.257354 -0.75 0.875 1.38778e-16 -0.8125 0.875 -0.257354 -0.875 0.875 -0.475528 -0.9375 0.875 -0.621308 -1 0.875 -0.672499 - -0 0.9375 -0.878662 -0.0625 0.9375 -0.811778 -0.125 0.9375 -0.621308 -0.1875 0.9375 -0.336249 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.336249 -0.375 0.9375 0.621308 -0.4375 0.9375 0.811778 -0.5 0.9375 0.878662 -0.5625 0.9375 0.811778 -0.625 0.9375 0.621308 -0.6875 0.9375 0.336249 -0.75 0.9375 2.08167e-16 -0.8125 0.9375 -0.336249 -0.875 0.9375 -0.621308 -0.9375 0.9375 -0.811778 -1 0.9375 -0.878662 - -0 1 -0.951057 -0.0625 1 -0.878662 -0.125 1 -0.672499 -0.1875 1 -0.363954 -0.25 1 0 -0.3125 1 0.363954 -0.375 1 0.672499 -0.4375 1 0.878662 -0.5 1 0.951057 -0.5625 1 0.878662 -0.625 1 0.672499 -0.6875 1 0.363954 -0.75 1 2.22045e-16 -0.8125 1 -0.363954 -0.875 1 -0.672499 -0.9375 1 -0.878662 -1 1 -0.951057 - - -0 0 -0.960294 -0.0625 0 -0.887196 -0.125 0 -0.67903 -0.1875 0 -0.367488 -0.25 0 -5.55112e-17 -0.3125 0 0.367488 -0.375 0 0.67903 -0.4375 0 0.887196 -0.5 0 0.960294 -0.5625 0 0.887196 -0.625 0 0.67903 -0.6875 0 0.367488 -0.75 0 1.66533e-16 -0.8125 0 -0.367488 -0.875 0 -0.67903 -0.9375 0 -0.887196 -1 0 -0.960294 - -0 0.0625 -0.887196 -0.0625 0.0625 -0.819662 -0.125 0.0625 -0.627342 -0.1875 0.0625 -0.339515 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.339515 -0.375 0.0625 0.627342 -0.4375 0.0625 0.819662 -0.5 0.0625 0.887196 -0.5625 0.0625 0.819662 -0.625 0.0625 0.627342 -0.6875 0.0625 0.339515 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.339515 -0.875 0.0625 -0.627342 -0.9375 0.0625 -0.819662 -1 0.0625 -0.887196 - -0 0.125 -0.67903 -0.0625 0.125 -0.627342 -0.125 0.125 -0.480147 -0.1875 0.125 -0.259854 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.259854 -0.375 0.125 0.480147 -0.4375 0.125 0.627342 -0.5 0.125 0.67903 -0.5625 0.125 0.627342 -0.625 0.125 0.480147 -0.6875 0.125 0.259854 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.259854 -0.875 0.125 -0.480147 -0.9375 0.125 -0.627342 -1 0.125 -0.67903 - -0 0.1875 -0.367488 -0.0625 0.1875 -0.339515 -0.125 0.1875 -0.259854 -0.1875 0.1875 -0.140632 -0.25 0.1875 -2.08167e-17 -0.3125 0.1875 0.140632 -0.375 0.1875 0.259854 -0.4375 0.1875 0.339515 -0.5 0.1875 0.367488 -0.5625 0.1875 0.339515 -0.625 0.1875 0.259854 -0.6875 0.1875 0.140632 -0.75 0.1875 6.245e-17 -0.8125 0.1875 -0.140632 -0.875 0.1875 -0.259854 -0.9375 0.1875 -0.339515 -1 0.1875 -0.367488 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 0 -0.1875 0.25 -5.55112e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 0 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 1.11022e-16 -0.625 0.25 5.55112e-17 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 0 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -1.11022e-16 -1 0.25 -5.55112e-17 - -0 0.3125 0.367488 -0.0625 0.3125 0.339515 -0.125 0.3125 0.259854 -0.1875 0.3125 0.140632 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.140632 -0.375 0.3125 -0.259854 -0.4375 0.3125 -0.339515 -0.5 0.3125 -0.367488 -0.5625 0.3125 -0.339515 -0.625 0.3125 -0.259854 -0.6875 0.3125 -0.140632 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.140632 -0.875 0.3125 0.259854 -0.9375 0.3125 0.339515 -1 0.3125 0.367488 - -0 0.375 0.67903 -0.0625 0.375 0.627342 -0.125 0.375 0.480147 -0.1875 0.375 0.259854 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.259854 -0.375 0.375 -0.480147 -0.4375 0.375 -0.627342 -0.5 0.375 -0.67903 -0.5625 0.375 -0.627342 -0.625 0.375 -0.480147 -0.6875 0.375 -0.259854 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.259854 -0.875 0.375 0.480147 -0.9375 0.375 0.627342 -1 0.375 0.67903 - -0 0.4375 0.887196 -0.0625 0.4375 0.819662 -0.125 0.4375 0.627342 -0.1875 0.4375 0.339515 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.339515 -0.375 0.4375 -0.627342 -0.4375 0.4375 -0.819662 -0.5 0.4375 -0.887196 -0.5625 0.4375 -0.819662 -0.625 0.4375 -0.627342 -0.6875 0.4375 -0.339515 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.339515 -0.875 0.4375 0.627342 -0.9375 0.4375 0.819662 -1 0.4375 0.887196 - -0 0.5 0.960294 -0.0625 0.5 0.887196 -0.125 0.5 0.67903 -0.1875 0.5 0.367488 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.367488 -0.375 0.5 -0.67903 -0.4375 0.5 -0.887196 -0.5 0.5 -0.960294 -0.5625 0.5 -0.887196 -0.625 0.5 -0.67903 -0.6875 0.5 -0.367488 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.367488 -0.875 0.5 0.67903 -0.9375 0.5 0.887196 -1 0.5 0.960294 - -0 0.5625 0.887196 -0.0625 0.5625 0.819662 -0.125 0.5625 0.627342 -0.1875 0.5625 0.339515 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.339515 -0.375 0.5625 -0.627342 -0.4375 0.5625 -0.819662 -0.5 0.5625 -0.887196 -0.5625 0.5625 -0.819662 -0.625 0.5625 -0.627342 -0.6875 0.5625 -0.339515 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.339515 -0.875 0.5625 0.627342 -0.9375 0.5625 0.819662 -1 0.5625 0.887196 - -0 0.625 0.67903 -0.0625 0.625 0.627342 -0.125 0.625 0.480147 -0.1875 0.625 0.259854 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.259854 -0.375 0.625 -0.480147 -0.4375 0.625 -0.627342 -0.5 0.625 -0.67903 -0.5625 0.625 -0.627342 -0.625 0.625 -0.480147 -0.6875 0.625 -0.259854 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.259854 -0.875 0.625 0.480147 -0.9375 0.625 0.627342 -1 0.625 0.67903 - -0 0.6875 0.367488 -0.0625 0.6875 0.339515 -0.125 0.6875 0.259854 -0.1875 0.6875 0.140632 -0.25 0.6875 3.29597e-17 -0.3125 0.6875 -0.140632 -0.375 0.6875 -0.259854 -0.4375 0.6875 -0.339515 -0.5 0.6875 -0.367488 -0.5625 0.6875 -0.339515 -0.625 0.6875 -0.259854 -0.6875 0.6875 -0.140632 -0.75 0.6875 -5.0307e-17 -0.8125 0.6875 0.140632 -0.875 0.6875 0.259854 -0.9375 0.6875 0.339515 -1 0.6875 0.367488 - -0 0.75 1.66533e-16 -0.0625 0.75 1.66533e-16 -0.125 0.75 1.66533e-16 -0.1875 0.75 2.77556e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.66533e-16 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.11022e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 1.11022e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.367488 -0.0625 0.8125 -0.339515 -0.125 0.8125 -0.259854 -0.1875 0.8125 -0.140632 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.140632 -0.375 0.8125 0.259854 -0.4375 0.8125 0.339515 -0.5 0.8125 0.367488 -0.5625 0.8125 0.339515 -0.625 0.8125 0.259854 -0.6875 0.8125 0.140632 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.140632 -0.875 0.8125 -0.259854 -0.9375 0.8125 -0.339515 -1 0.8125 -0.367488 - -0 0.875 -0.67903 -0.0625 0.875 -0.627342 -0.125 0.875 -0.480147 -0.1875 0.875 -0.259854 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.259854 -0.375 0.875 0.480147 -0.4375 0.875 0.627342 -0.5 0.875 0.67903 -0.5625 0.875 0.627342 -0.625 0.875 0.480147 -0.6875 0.875 0.259854 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.259854 -0.875 0.875 -0.480147 -0.9375 0.875 -0.627342 -1 0.875 -0.67903 - -0 0.9375 -0.887196 -0.0625 0.9375 -0.819662 -0.125 0.9375 -0.627342 -0.1875 0.9375 -0.339515 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.339515 -0.375 0.9375 0.627342 -0.4375 0.9375 0.819662 -0.5 0.9375 0.887196 -0.5625 0.9375 0.819662 -0.625 0.9375 0.627342 -0.6875 0.9375 0.339515 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.339515 -0.875 0.9375 -0.627342 -0.9375 0.9375 -0.819662 -1 0.9375 -0.887196 - -0 1 -0.960294 -0.0625 1 -0.887196 -0.125 1 -0.67903 -0.1875 1 -0.367488 -0.25 1 -5.55112e-17 -0.3125 1 0.367488 -0.375 1 0.67903 -0.4375 1 0.887196 -0.5 1 0.960294 -0.5625 1 0.887196 -0.625 1 0.67903 -0.6875 1 0.367488 -0.75 1 1.66533e-16 -0.8125 1 -0.367488 -0.875 1 -0.67903 -0.9375 1 -0.887196 -1 1 -0.960294 - - -0 0 -0.968583 -0.0625 0 -0.894854 -0.125 0 -0.684892 -0.1875 0 -0.370661 -0.25 0 -5.55112e-17 -0.3125 0 0.370661 -0.375 0 0.684892 -0.4375 0 0.894854 -0.5 0 0.968583 -0.5625 0 0.894854 -0.625 0 0.684892 -0.6875 0 0.370661 -0.75 0 1.66533e-16 -0.8125 0 -0.370661 -0.875 0 -0.684892 -0.9375 0 -0.894854 -1 0 -0.968583 - -0 0.0625 -0.894854 -0.0625 0.0625 -0.826737 -0.125 0.0625 -0.632757 -0.1875 0.0625 -0.342446 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.342446 -0.375 0.0625 0.632757 -0.4375 0.0625 0.826737 -0.5 0.0625 0.894854 -0.5625 0.0625 0.826737 -0.625 0.0625 0.632757 -0.6875 0.0625 0.342446 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.342446 -0.875 0.0625 -0.632757 -0.9375 0.0625 -0.826737 -1 0.0625 -0.894854 - -0 0.125 -0.684892 -0.0625 0.125 -0.632757 -0.125 0.125 -0.484292 -0.1875 0.125 -0.262097 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.262097 -0.375 0.125 0.484292 -0.4375 0.125 0.632757 -0.5 0.125 0.684892 -0.5625 0.125 0.632757 -0.625 0.125 0.484292 -0.6875 0.125 0.262097 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.262097 -0.875 0.125 -0.484292 -0.9375 0.125 -0.632757 -1 0.125 -0.684892 - -0 0.1875 -0.370661 -0.0625 0.1875 -0.342446 -0.125 0.1875 -0.262097 -0.1875 0.1875 -0.141846 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.141846 -0.375 0.1875 0.262097 -0.4375 0.1875 0.342446 -0.5 0.1875 0.370661 -0.5625 0.1875 0.342446 -0.625 0.1875 0.262097 -0.6875 0.1875 0.141846 -0.75 0.1875 6.41848e-17 -0.8125 0.1875 -0.141846 -0.875 0.1875 -0.262097 -0.9375 0.1875 -0.342446 -1 0.1875 -0.370661 - -0 0.25 -5.55112e-17 -0.0625 0.25 0 -0.125 0.25 -1.11022e-16 -0.1875 0.25 0 -0.25 0.25 -6.16298e-33 -0.3125 0.25 0 -0.375 0.25 1.11022e-16 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 0 -0.6875 0.25 5.55112e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -2.77556e-17 -0.875 0.25 -1.11022e-16 -0.9375 0.25 0 -1 0.25 -5.55112e-17 - -0 0.3125 0.370661 -0.0625 0.3125 0.342446 -0.125 0.3125 0.262097 -0.1875 0.3125 0.141846 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.141846 -0.375 0.3125 -0.262097 -0.4375 0.3125 -0.342446 -0.5 0.3125 -0.370661 -0.5625 0.3125 -0.342446 -0.625 0.3125 -0.262097 -0.6875 0.3125 -0.141846 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.141846 -0.875 0.3125 0.262097 -0.9375 0.3125 0.342446 -1 0.3125 0.370661 - -0 0.375 0.684892 -0.0625 0.375 0.632757 -0.125 0.375 0.484292 -0.1875 0.375 0.262097 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.262097 -0.375 0.375 -0.484292 -0.4375 0.375 -0.632757 -0.5 0.375 -0.684892 -0.5625 0.375 -0.632757 -0.625 0.375 -0.484292 -0.6875 0.375 -0.262097 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.262097 -0.875 0.375 0.484292 -0.9375 0.375 0.632757 -1 0.375 0.684892 - -0 0.4375 0.894854 -0.0625 0.4375 0.826737 -0.125 0.4375 0.632757 -0.1875 0.4375 0.342446 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.342446 -0.375 0.4375 -0.632757 -0.4375 0.4375 -0.826737 -0.5 0.4375 -0.894854 -0.5625 0.4375 -0.826737 -0.625 0.4375 -0.632757 -0.6875 0.4375 -0.342446 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.342446 -0.875 0.4375 0.632757 -0.9375 0.4375 0.826737 -1 0.4375 0.894854 - -0 0.5 0.968583 -0.0625 0.5 0.894854 -0.125 0.5 0.684892 -0.1875 0.5 0.370661 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.370661 -0.375 0.5 -0.684892 -0.4375 0.5 -0.894854 -0.5 0.5 -0.968583 -0.5625 0.5 -0.894854 -0.625 0.5 -0.684892 -0.6875 0.5 -0.370661 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.370661 -0.875 0.5 0.684892 -0.9375 0.5 0.894854 -1 0.5 0.968583 - -0 0.5625 0.894854 -0.0625 0.5625 0.826737 -0.125 0.5625 0.632757 -0.1875 0.5625 0.342446 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.342446 -0.375 0.5625 -0.632757 -0.4375 0.5625 -0.826737 -0.5 0.5625 -0.894854 -0.5625 0.5625 -0.826737 -0.625 0.5625 -0.632757 -0.6875 0.5625 -0.342446 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.342446 -0.875 0.5625 0.632757 -0.9375 0.5625 0.826737 -1 0.5625 0.894854 - -0 0.625 0.684892 -0.0625 0.625 0.632757 -0.125 0.625 0.484292 -0.1875 0.625 0.262097 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.262097 -0.375 0.625 -0.484292 -0.4375 0.625 -0.632757 -0.5 0.625 -0.684892 -0.5625 0.625 -0.632757 -0.625 0.625 -0.484292 -0.6875 0.625 -0.262097 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.262097 -0.875 0.625 0.484292 -0.9375 0.625 0.632757 -1 0.625 0.684892 - -0 0.6875 0.370661 -0.0625 0.6875 0.342446 -0.125 0.6875 0.262097 -0.1875 0.6875 0.141846 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.141846 -0.375 0.6875 -0.262097 -0.4375 0.6875 -0.342446 -0.5 0.6875 -0.370661 -0.5625 0.6875 -0.342446 -0.625 0.6875 -0.262097 -0.6875 0.6875 -0.141846 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.141846 -0.875 0.6875 0.262097 -0.9375 0.6875 0.342446 -1 0.6875 0.370661 - -0 0.75 1.66533e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -8.32667e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 5.55112e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 2.22045e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.370661 -0.0625 0.8125 -0.342446 -0.125 0.8125 -0.262097 -0.1875 0.8125 -0.141846 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.141846 -0.375 0.8125 0.262097 -0.4375 0.8125 0.342446 -0.5 0.8125 0.370661 -0.5625 0.8125 0.342446 -0.625 0.8125 0.262097 -0.6875 0.8125 0.141846 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.141846 -0.875 0.8125 -0.262097 -0.9375 0.8125 -0.342446 -1 0.8125 -0.370661 - -0 0.875 -0.684892 -0.0625 0.875 -0.632757 -0.125 0.875 -0.484292 -0.1875 0.875 -0.262097 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.262097 -0.375 0.875 0.484292 -0.4375 0.875 0.632757 -0.5 0.875 0.684892 -0.5625 0.875 0.632757 -0.625 0.875 0.484292 -0.6875 0.875 0.262097 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.262097 -0.875 0.875 -0.484292 -0.9375 0.875 -0.632757 -1 0.875 -0.684892 - -0 0.9375 -0.894854 -0.0625 0.9375 -0.826737 -0.125 0.9375 -0.632757 -0.1875 0.9375 -0.342446 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.342446 -0.375 0.9375 0.632757 -0.4375 0.9375 0.826737 -0.5 0.9375 0.894854 -0.5625 0.9375 0.826737 -0.625 0.9375 0.632757 -0.6875 0.9375 0.342446 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.342446 -0.875 0.9375 -0.632757 -0.9375 0.9375 -0.826737 -1 0.9375 -0.894854 - -0 1 -0.968583 -0.0625 1 -0.894854 -0.125 1 -0.684892 -0.1875 1 -0.370661 -0.25 1 -5.55112e-17 -0.3125 1 0.370661 -0.375 1 0.684892 -0.4375 1 0.894854 -0.5 1 0.968583 -0.5625 1 0.894854 -0.625 1 0.684892 -0.6875 1 0.370661 -0.75 1 1.66533e-16 -0.8125 1 -0.370661 -0.875 1 -0.684892 -0.9375 1 -0.894854 -1 1 -0.968583 - - -0 0 -0.975917 -0.0625 0 -0.90163 -0.125 0 -0.690077 -0.1875 0 -0.373467 -0.25 0 -5.55112e-17 -0.3125 0 0.373467 -0.375 0 0.690077 -0.4375 0 0.90163 -0.5 0 0.975917 -0.5625 0 0.90163 -0.625 0 0.690077 -0.6875 0 0.373467 -0.75 0 1.66533e-16 -0.8125 0 -0.373467 -0.875 0 -0.690077 -0.9375 0 -0.90163 -1 0 -0.975917 - -0 0.0625 -0.90163 -0.0625 0.0625 -0.832997 -0.125 0.0625 -0.637548 -0.1875 0.0625 -0.345039 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.345039 -0.375 0.0625 0.637548 -0.4375 0.0625 0.832997 -0.5 0.0625 0.90163 -0.5625 0.0625 0.832997 -0.625 0.0625 0.637548 -0.6875 0.0625 0.345039 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.345039 -0.875 0.0625 -0.637548 -0.9375 0.0625 -0.832997 -1 0.0625 -0.90163 - -0 0.125 -0.690077 -0.0625 0.125 -0.637548 -0.125 0.125 -0.487958 -0.1875 0.125 -0.264081 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.264081 -0.375 0.125 0.487958 -0.4375 0.125 0.637548 -0.5 0.125 0.690077 -0.5625 0.125 0.637548 -0.625 0.125 0.487958 -0.6875 0.125 0.264081 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.264081 -0.875 0.125 -0.487958 -0.9375 0.125 -0.637548 -1 0.125 -0.690077 - -0 0.1875 -0.373467 -0.0625 0.1875 -0.345039 -0.125 0.1875 -0.264081 -0.1875 0.1875 -0.14292 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.14292 -0.375 0.1875 0.264081 -0.4375 0.1875 0.345039 -0.5 0.1875 0.373467 -0.5625 0.1875 0.345039 -0.625 0.1875 0.264081 -0.6875 0.1875 0.14292 -0.75 0.1875 6.41848e-17 -0.8125 0.1875 -0.14292 -0.875 0.1875 -0.264081 -0.9375 0.1875 -0.345039 -1 0.1875 -0.373467 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -1.11022e-16 -0.1875 0.25 0 -0.25 0.25 -6.16298e-33 -0.3125 0.25 0 -0.375 0.25 1.11022e-16 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 1.11022e-16 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 -5.55112e-17 -0.875 0.25 0 -0.9375 0.25 -1.11022e-16 -1 0.25 -5.55112e-17 - -0 0.3125 0.373467 -0.0625 0.3125 0.345039 -0.125 0.3125 0.264081 -0.1875 0.3125 0.14292 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.14292 -0.375 0.3125 -0.264081 -0.4375 0.3125 -0.345039 -0.5 0.3125 -0.373467 -0.5625 0.3125 -0.345039 -0.625 0.3125 -0.264081 -0.6875 0.3125 -0.14292 -0.75 0.3125 -5.55112e-17 -0.8125 0.3125 0.14292 -0.875 0.3125 0.264081 -0.9375 0.3125 0.345039 -1 0.3125 0.373467 - -0 0.375 0.690077 -0.0625 0.375 0.637548 -0.125 0.375 0.487958 -0.1875 0.375 0.264081 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.264081 -0.375 0.375 -0.487958 -0.4375 0.375 -0.637548 -0.5 0.375 -0.690077 -0.5625 0.375 -0.637548 -0.625 0.375 -0.487958 -0.6875 0.375 -0.264081 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.264081 -0.875 0.375 0.487958 -0.9375 0.375 0.637548 -1 0.375 0.690077 - -0 0.4375 0.90163 -0.0625 0.4375 0.832997 -0.125 0.4375 0.637548 -0.1875 0.4375 0.345039 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.345039 -0.375 0.4375 -0.637548 -0.4375 0.4375 -0.832997 -0.5 0.4375 -0.90163 -0.5625 0.4375 -0.832997 -0.625 0.4375 -0.637548 -0.6875 0.4375 -0.345039 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.345039 -0.875 0.4375 0.637548 -0.9375 0.4375 0.832997 -1 0.4375 0.90163 - -0 0.5 0.975917 -0.0625 0.5 0.90163 -0.125 0.5 0.690077 -0.1875 0.5 0.373467 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.373467 -0.375 0.5 -0.690077 -0.4375 0.5 -0.90163 -0.5 0.5 -0.975917 -0.5625 0.5 -0.90163 -0.625 0.5 -0.690077 -0.6875 0.5 -0.373467 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.373467 -0.875 0.5 0.690077 -0.9375 0.5 0.90163 -1 0.5 0.975917 - -0 0.5625 0.90163 -0.0625 0.5625 0.832997 -0.125 0.5625 0.637548 -0.1875 0.5625 0.345039 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.345039 -0.375 0.5625 -0.637548 -0.4375 0.5625 -0.832997 -0.5 0.5625 -0.90163 -0.5625 0.5625 -0.832997 -0.625 0.5625 -0.637548 -0.6875 0.5625 -0.345039 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.345039 -0.875 0.5625 0.637548 -0.9375 0.5625 0.832997 -1 0.5625 0.90163 - -0 0.625 0.690077 -0.0625 0.625 0.637548 -0.125 0.625 0.487958 -0.1875 0.625 0.264081 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.264081 -0.375 0.625 -0.487958 -0.4375 0.625 -0.637548 -0.5 0.625 -0.690077 -0.5625 0.625 -0.637548 -0.625 0.625 -0.487958 -0.6875 0.625 -0.264081 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.264081 -0.875 0.625 0.487958 -0.9375 0.625 0.637548 -1 0.625 0.690077 - -0 0.6875 0.373467 -0.0625 0.6875 0.345039 -0.125 0.6875 0.264081 -0.1875 0.6875 0.14292 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.14292 -0.375 0.6875 -0.264081 -0.4375 0.6875 -0.345039 -0.5 0.6875 -0.373467 -0.5625 0.6875 -0.345039 -0.625 0.6875 -0.264081 -0.6875 0.6875 -0.14292 -0.75 0.6875 -4.85723e-17 -0.8125 0.6875 0.14292 -0.875 0.6875 0.264081 -0.9375 0.6875 0.345039 -1 0.6875 0.373467 - -0 0.75 1.66533e-16 -0.0625 0.75 1.66533e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -8.32667e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 1.11022e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.373467 -0.0625 0.8125 -0.345039 -0.125 0.8125 -0.264081 -0.1875 0.8125 -0.14292 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.14292 -0.375 0.8125 0.264081 -0.4375 0.8125 0.345039 -0.5 0.8125 0.373467 -0.5625 0.8125 0.345039 -0.625 0.8125 0.264081 -0.6875 0.8125 0.14292 -0.75 0.8125 5.55112e-17 -0.8125 0.8125 -0.14292 -0.875 0.8125 -0.264081 -0.9375 0.8125 -0.345039 -1 0.8125 -0.373467 - -0 0.875 -0.690077 -0.0625 0.875 -0.637548 -0.125 0.875 -0.487958 -0.1875 0.875 -0.264081 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.264081 -0.375 0.875 0.487958 -0.4375 0.875 0.637548 -0.5 0.875 0.690077 -0.5625 0.875 0.637548 -0.625 0.875 0.487958 -0.6875 0.875 0.264081 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.264081 -0.875 0.875 -0.487958 -0.9375 0.875 -0.637548 -1 0.875 -0.690077 - -0 0.9375 -0.90163 -0.0625 0.9375 -0.832997 -0.125 0.9375 -0.637548 -0.1875 0.9375 -0.345039 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.345039 -0.375 0.9375 0.637548 -0.4375 0.9375 0.832997 -0.5 0.9375 0.90163 -0.5625 0.9375 0.832997 -0.625 0.9375 0.637548 -0.6875 0.9375 0.345039 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.345039 -0.875 0.9375 -0.637548 -0.9375 0.9375 -0.832997 -1 0.9375 -0.90163 - -0 1 -0.975917 -0.0625 1 -0.90163 -0.125 1 -0.690077 -0.1875 1 -0.373467 -0.25 1 -5.55112e-17 -0.3125 1 0.373467 -0.375 1 0.690077 -0.4375 1 0.90163 -0.5 1 0.975917 -0.5625 1 0.90163 -0.625 1 0.690077 -0.6875 1 0.373467 -0.75 1 1.66533e-16 -0.8125 1 -0.373467 -0.875 1 -0.690077 -0.9375 1 -0.90163 -1 1 -0.975917 - - -0 0 -0.982287 -0.0625 0 -0.907515 -0.125 0 -0.694582 -0.1875 0 -0.375905 -0.25 0 0 -0.3125 0 0.375905 -0.375 0 0.694582 -0.4375 0 0.907515 -0.5 0 0.982287 -0.5625 0 0.907515 -0.625 0 0.694582 -0.6875 0 0.375905 -0.75 0 2.22045e-16 -0.8125 0 -0.375905 -0.875 0 -0.694582 -0.9375 0 -0.907515 -1 0 -0.982287 - -0 0.0625 -0.907515 -0.0625 0.0625 -0.838435 -0.125 0.0625 -0.64171 -0.1875 0.0625 -0.347291 -0.25 0.0625 -2.08167e-17 -0.3125 0.0625 0.347291 -0.375 0.0625 0.64171 -0.4375 0.0625 0.838435 -0.5 0.0625 0.907515 -0.5625 0.0625 0.838435 -0.625 0.0625 0.64171 -0.6875 0.0625 0.347291 -0.75 0.0625 2.01228e-16 -0.8125 0.0625 -0.347291 -0.875 0.0625 -0.64171 -0.9375 0.0625 -0.838435 -1 0.0625 -0.907515 - -0 0.125 -0.694582 -0.0625 0.125 -0.64171 -0.125 0.125 -0.491144 -0.1875 0.125 -0.265805 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.265805 -0.375 0.125 0.491144 -0.4375 0.125 0.64171 -0.5 0.125 0.694582 -0.5625 0.125 0.64171 -0.625 0.125 0.491144 -0.6875 0.125 0.265805 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.265805 -0.875 0.125 -0.491144 -0.9375 0.125 -0.64171 -1 0.125 -0.694582 - -0 0.1875 -0.375905 -0.0625 0.1875 -0.347291 -0.125 0.1875 -0.265805 -0.1875 0.1875 -0.143853 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.143853 -0.375 0.1875 0.265805 -0.4375 0.1875 0.347291 -0.5 0.1875 0.375905 -0.5625 0.1875 0.347291 -0.625 0.1875 0.265805 -0.6875 0.1875 0.143853 -0.75 0.1875 6.41848e-17 -0.8125 0.1875 -0.143853 -0.875 0.1875 -0.265805 -0.9375 0.1875 -0.347291 -1 0.1875 -0.375905 - -0 0.25 0 -0.0625 0.25 -5.55112e-17 -0.125 0.25 0 -0.1875 0.25 -2.77556e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 2.77556e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 1.11022e-16 -0.5625 0.25 1.11022e-16 -0.625 0.25 0 -0.6875 0.25 0 -0.75 0.25 0 -0.8125 0.25 -5.55112e-17 -0.875 0.25 -1.11022e-16 -0.9375 0.25 0 -1 0.25 0 - -0 0.3125 0.375905 -0.0625 0.3125 0.347291 -0.125 0.3125 0.265805 -0.1875 0.3125 0.143853 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.143853 -0.375 0.3125 -0.265805 -0.4375 0.3125 -0.347291 -0.5 0.3125 -0.375905 -0.5625 0.3125 -0.347291 -0.625 0.3125 -0.265805 -0.6875 0.3125 -0.143853 -0.75 0.3125 -6.93889e-17 -0.8125 0.3125 0.143853 -0.875 0.3125 0.265805 -0.9375 0.3125 0.347291 -1 0.3125 0.375905 - -0 0.375 0.694582 -0.0625 0.375 0.64171 -0.125 0.375 0.491144 -0.1875 0.375 0.265805 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.265805 -0.375 0.375 -0.491144 -0.4375 0.375 -0.64171 -0.5 0.375 -0.694582 -0.5625 0.375 -0.64171 -0.625 0.375 -0.491144 -0.6875 0.375 -0.265805 -0.75 0.375 -1.38778e-16 -0.8125 0.375 0.265805 -0.875 0.375 0.491144 -0.9375 0.375 0.64171 -1 0.375 0.694582 - -0 0.4375 0.907515 -0.0625 0.4375 0.838435 -0.125 0.4375 0.64171 -0.1875 0.4375 0.347291 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.347291 -0.375 0.4375 -0.64171 -0.4375 0.4375 -0.838435 -0.5 0.4375 -0.907515 -0.5625 0.4375 -0.838435 -0.625 0.4375 -0.64171 -0.6875 0.4375 -0.347291 -0.75 0.4375 -2.08167e-16 -0.8125 0.4375 0.347291 -0.875 0.4375 0.64171 -0.9375 0.4375 0.838435 -1 0.4375 0.907515 - -0 0.5 0.982287 -0.0625 0.5 0.907515 -0.125 0.5 0.694582 -0.1875 0.5 0.375905 -0.25 0.5 0 -0.3125 0.5 -0.375905 -0.375 0.5 -0.694582 -0.4375 0.5 -0.907515 -0.5 0.5 -0.982287 -0.5625 0.5 -0.907515 -0.625 0.5 -0.694582 -0.6875 0.5 -0.375905 -0.75 0.5 -2.22045e-16 -0.8125 0.5 0.375905 -0.875 0.5 0.694582 -0.9375 0.5 0.907515 -1 0.5 0.982287 - -0 0.5625 0.907515 -0.0625 0.5625 0.838435 -0.125 0.5625 0.64171 -0.1875 0.5625 0.347291 -0.25 0.5625 6.93889e-18 -0.3125 0.5625 -0.347291 -0.375 0.5625 -0.64171 -0.4375 0.5625 -0.838435 -0.5 0.5625 -0.907515 -0.5625 0.5625 -0.838435 -0.625 0.5625 -0.64171 -0.6875 0.5625 -0.347291 -0.75 0.5625 -2.15106e-16 -0.8125 0.5625 0.347291 -0.875 0.5625 0.64171 -0.9375 0.5625 0.838435 -1 0.5625 0.907515 - -0 0.625 0.694582 -0.0625 0.625 0.64171 -0.125 0.625 0.491144 -0.1875 0.625 0.265805 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.265805 -0.375 0.625 -0.491144 -0.4375 0.625 -0.64171 -0.5 0.625 -0.694582 -0.5625 0.625 -0.64171 -0.625 0.625 -0.491144 -0.6875 0.625 -0.265805 -0.75 0.625 -1.52656e-16 -0.8125 0.625 0.265805 -0.875 0.625 0.491144 -0.9375 0.625 0.64171 -1 0.625 0.694582 - -0 0.6875 0.375905 -0.0625 0.6875 0.347291 -0.125 0.6875 0.265805 -0.1875 0.6875 0.143853 -0.25 0.6875 6.93889e-18 -0.3125 0.6875 -0.143853 -0.375 0.6875 -0.265805 -0.4375 0.6875 -0.347291 -0.5 0.6875 -0.375905 -0.5625 0.6875 -0.347291 -0.625 0.6875 -0.265805 -0.6875 0.6875 -0.143853 -0.75 0.6875 -7.63278e-17 -0.8125 0.6875 0.143853 -0.875 0.6875 0.265805 -0.9375 0.6875 0.347291 -1 0.6875 0.375905 - -0 0.75 2.22045e-16 -0.0625 0.75 1.66533e-16 -0.125 0.75 1.66533e-16 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.11022e-16 -0.5625 0.75 -1.11022e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -8.32667e-17 -0.75 0.75 -4.93038e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 2.22045e-16 -1 0.75 2.22045e-16 - -0 0.8125 -0.375905 -0.0625 0.8125 -0.347291 -0.125 0.8125 -0.265805 -0.1875 0.8125 -0.143853 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.143853 -0.375 0.8125 0.265805 -0.4375 0.8125 0.347291 -0.5 0.8125 0.375905 -0.5625 0.8125 0.347291 -0.625 0.8125 0.265805 -0.6875 0.8125 0.143853 -0.75 0.8125 6.93889e-17 -0.8125 0.8125 -0.143853 -0.875 0.8125 -0.265805 -0.9375 0.8125 -0.347291 -1 0.8125 -0.375905 - -0 0.875 -0.694582 -0.0625 0.875 -0.64171 -0.125 0.875 -0.491144 -0.1875 0.875 -0.265805 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.265805 -0.375 0.875 0.491144 -0.4375 0.875 0.64171 -0.5 0.875 0.694582 -0.5625 0.875 0.64171 -0.625 0.875 0.491144 -0.6875 0.875 0.265805 -0.75 0.875 1.38778e-16 -0.8125 0.875 -0.265805 -0.875 0.875 -0.491144 -0.9375 0.875 -0.64171 -1 0.875 -0.694582 - -0 0.9375 -0.907515 -0.0625 0.9375 -0.838435 -0.125 0.9375 -0.64171 -0.1875 0.9375 -0.347291 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.347291 -0.375 0.9375 0.64171 -0.4375 0.9375 0.838435 -0.5 0.9375 0.907515 -0.5625 0.9375 0.838435 -0.625 0.9375 0.64171 -0.6875 0.9375 0.347291 -0.75 0.9375 2.08167e-16 -0.8125 0.9375 -0.347291 -0.875 0.9375 -0.64171 -0.9375 0.9375 -0.838435 -1 0.9375 -0.907515 - -0 1 -0.982287 -0.0625 1 -0.907515 -0.125 1 -0.694582 -0.1875 1 -0.375905 -0.25 1 0 -0.3125 1 0.375905 -0.375 1 0.694582 -0.4375 1 0.907515 -0.5 1 0.982287 -0.5625 1 0.907515 -0.625 1 0.694582 -0.6875 1 0.375905 -0.75 1 2.22045e-16 -0.8125 1 -0.375905 -0.875 1 -0.694582 -0.9375 1 -0.907515 -1 1 -0.982287 - - -0 0 -0.987688 -0.0625 0 -0.912505 -0.125 0 -0.698401 -0.1875 0 -0.377972 -0.25 0 0 -0.3125 0 0.377972 -0.375 0 0.698401 -0.4375 0 0.912505 -0.5 0 0.987688 -0.5625 0 0.912505 -0.625 0 0.698401 -0.6875 0 0.377972 -0.75 0 2.22045e-16 -0.8125 0 -0.377972 -0.875 0 -0.698401 -0.9375 0 -0.912505 -1 0 -0.987688 - -0 0.0625 -0.912505 -0.0625 0.0625 -0.843045 -0.125 0.0625 -0.645239 -0.1875 0.0625 -0.349201 -0.25 0.0625 -2.08167e-17 -0.3125 0.0625 0.349201 -0.375 0.0625 0.645239 -0.4375 0.0625 0.843045 -0.5 0.0625 0.912505 -0.5625 0.0625 0.843045 -0.625 0.0625 0.645239 -0.6875 0.0625 0.349201 -0.75 0.0625 2.01228e-16 -0.8125 0.0625 -0.349201 -0.875 0.0625 -0.645239 -0.9375 0.0625 -0.843045 -1 0.0625 -0.912505 - -0 0.125 -0.698401 -0.0625 0.125 -0.645239 -0.125 0.125 -0.493844 -0.1875 0.125 -0.267267 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.267267 -0.375 0.125 0.493844 -0.4375 0.125 0.645239 -0.5 0.125 0.698401 -0.5625 0.125 0.645239 -0.625 0.125 0.493844 -0.6875 0.125 0.267267 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.267267 -0.875 0.125 -0.493844 -0.9375 0.125 -0.645239 -1 0.125 -0.698401 - -0 0.1875 -0.377972 -0.0625 0.1875 -0.349201 -0.125 0.1875 -0.267267 -0.1875 0.1875 -0.144644 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.144644 -0.375 0.1875 0.267267 -0.4375 0.1875 0.349201 -0.5 0.1875 0.377972 -0.5625 0.1875 0.349201 -0.625 0.1875 0.267267 -0.6875 0.1875 0.144644 -0.75 0.1875 9.19403e-17 -0.8125 0.1875 -0.144644 -0.875 0.1875 -0.267267 -0.9375 0.1875 -0.349201 -1 0.1875 -0.377972 - -0 0.25 0 -0.0625 0.25 0 -0.125 0.25 0 -0.1875 0.25 -5.55112e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 0 -0.4375 0.25 1.11022e-16 -0.5 0.25 0 -0.5625 0.25 5.55112e-17 -0.625 0.25 1.11022e-16 -0.6875 0.25 2.77556e-17 -0.75 0.25 0 -0.8125 0.25 0 -0.875 0.25 -5.55112e-17 -0.9375 0.25 -1.11022e-16 -1 0.25 0 - -0 0.3125 0.377972 -0.0625 0.3125 0.349201 -0.125 0.3125 0.267267 -0.1875 0.3125 0.144644 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.144644 -0.375 0.3125 -0.267267 -0.4375 0.3125 -0.349201 -0.5 0.3125 -0.377972 -0.5625 0.3125 -0.349201 -0.625 0.3125 -0.267267 -0.6875 0.3125 -0.144644 -0.75 0.3125 -9.71445e-17 -0.8125 0.3125 0.144644 -0.875 0.3125 0.267267 -0.9375 0.3125 0.349201 -1 0.3125 0.377972 - -0 0.375 0.698401 -0.0625 0.375 0.645239 -0.125 0.375 0.493844 -0.1875 0.375 0.267267 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.267267 -0.375 0.375 -0.493844 -0.4375 0.375 -0.645239 -0.5 0.375 -0.698401 -0.5625 0.375 -0.645239 -0.625 0.375 -0.493844 -0.6875 0.375 -0.267267 -0.75 0.375 -1.38778e-16 -0.8125 0.375 0.267267 -0.875 0.375 0.493844 -0.9375 0.375 0.645239 -1 0.375 0.698401 - -0 0.4375 0.912505 -0.0625 0.4375 0.843045 -0.125 0.4375 0.645239 -0.1875 0.4375 0.349201 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.349201 -0.375 0.4375 -0.645239 -0.4375 0.4375 -0.843045 -0.5 0.4375 -0.912505 -0.5625 0.4375 -0.843045 -0.625 0.4375 -0.645239 -0.6875 0.4375 -0.349201 -0.75 0.4375 -2.08167e-16 -0.8125 0.4375 0.349201 -0.875 0.4375 0.645239 -0.9375 0.4375 0.843045 -1 0.4375 0.912505 - -0 0.5 0.987688 -0.0625 0.5 0.912505 -0.125 0.5 0.698401 -0.1875 0.5 0.377972 -0.25 0.5 0 -0.3125 0.5 -0.377972 -0.375 0.5 -0.698401 -0.4375 0.5 -0.912505 -0.5 0.5 -0.987688 -0.5625 0.5 -0.912505 -0.625 0.5 -0.698401 -0.6875 0.5 -0.377972 -0.75 0.5 -2.22045e-16 -0.8125 0.5 0.377972 -0.875 0.5 0.698401 -0.9375 0.5 0.912505 -1 0.5 0.987688 - -0 0.5625 0.912505 -0.0625 0.5625 0.843045 -0.125 0.5625 0.645239 -0.1875 0.5625 0.349201 -0.25 0.5625 6.93889e-18 -0.3125 0.5625 -0.349201 -0.375 0.5625 -0.645239 -0.4375 0.5625 -0.843045 -0.5 0.5625 -0.912505 -0.5625 0.5625 -0.843045 -0.625 0.5625 -0.645239 -0.6875 0.5625 -0.349201 -0.75 0.5625 -2.15106e-16 -0.8125 0.5625 0.349201 -0.875 0.5625 0.645239 -0.9375 0.5625 0.843045 -1 0.5625 0.912505 - -0 0.625 0.698401 -0.0625 0.625 0.645239 -0.125 0.625 0.493844 -0.1875 0.625 0.267267 -0.25 0.625 1.38778e-17 -0.3125 0.625 -0.267267 -0.375 0.625 -0.493844 -0.4375 0.625 -0.645239 -0.5 0.625 -0.698401 -0.5625 0.625 -0.645239 -0.625 0.625 -0.493844 -0.6875 0.625 -0.267267 -0.75 0.625 -1.52656e-16 -0.8125 0.625 0.267267 -0.875 0.625 0.493844 -0.9375 0.625 0.645239 -1 0.625 0.698401 - -0 0.6875 0.377972 -0.0625 0.6875 0.349201 -0.125 0.6875 0.267267 -0.1875 0.6875 0.144644 -0.25 0.6875 6.93889e-18 -0.3125 0.6875 -0.144644 -0.375 0.6875 -0.267267 -0.4375 0.6875 -0.349201 -0.5 0.6875 -0.377972 -0.5625 0.6875 -0.349201 -0.625 0.6875 -0.267267 -0.6875 0.6875 -0.144644 -0.75 0.6875 -1.04083e-16 -0.8125 0.6875 0.144644 -0.875 0.6875 0.267267 -0.9375 0.6875 0.349201 -1 0.6875 0.377972 - -0 0.75 2.22045e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.66533e-16 -0.1875 0.75 2.77556e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.66533e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -2.22045e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -4.93038e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.11022e-16 -0.9375 0.75 1.11022e-16 -1 0.75 2.22045e-16 - -0 0.8125 -0.377972 -0.0625 0.8125 -0.349201 -0.125 0.8125 -0.267267 -0.1875 0.8125 -0.144644 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.144644 -0.375 0.8125 0.267267 -0.4375 0.8125 0.349201 -0.5 0.8125 0.377972 -0.5625 0.8125 0.349201 -0.625 0.8125 0.267267 -0.6875 0.8125 0.144644 -0.75 0.8125 9.71445e-17 -0.8125 0.8125 -0.144644 -0.875 0.8125 -0.267267 -0.9375 0.8125 -0.349201 -1 0.8125 -0.377972 - -0 0.875 -0.698401 -0.0625 0.875 -0.645239 -0.125 0.875 -0.493844 -0.1875 0.875 -0.267267 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.267267 -0.375 0.875 0.493844 -0.4375 0.875 0.645239 -0.5 0.875 0.698401 -0.5625 0.875 0.645239 -0.625 0.875 0.493844 -0.6875 0.875 0.267267 -0.75 0.875 1.38778e-16 -0.8125 0.875 -0.267267 -0.875 0.875 -0.493844 -0.9375 0.875 -0.645239 -1 0.875 -0.698401 - -0 0.9375 -0.912505 -0.0625 0.9375 -0.843045 -0.125 0.9375 -0.645239 -0.1875 0.9375 -0.349201 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.349201 -0.375 0.9375 0.645239 -0.4375 0.9375 0.843045 -0.5 0.9375 0.912505 -0.5625 0.9375 0.843045 -0.625 0.9375 0.645239 -0.6875 0.9375 0.349201 -0.75 0.9375 2.08167e-16 -0.8125 0.9375 -0.349201 -0.875 0.9375 -0.645239 -0.9375 0.9375 -0.843045 -1 0.9375 -0.912505 - -0 1 -0.987688 -0.0625 1 -0.912505 -0.125 1 -0.698401 -0.1875 1 -0.377972 -0.25 1 0 -0.3125 1 0.377972 -0.375 1 0.698401 -0.4375 1 0.912505 -0.5 1 0.987688 -0.5625 1 0.912505 -0.625 1 0.698401 -0.6875 1 0.377972 -0.75 1 2.22045e-16 -0.8125 1 -0.377972 -0.875 1 -0.698401 -0.9375 1 -0.912505 -1 1 -0.987688 - - -0 0 -0.992115 -0.0625 0 -0.916594 -0.125 0 -0.701531 -0.1875 0 -0.379666 -0.25 0 -5.55112e-17 -0.3125 0 0.379666 -0.375 0 0.701531 -0.4375 0 0.916594 -0.5 0 0.992115 -0.5625 0 0.916594 -0.625 0 0.701531 -0.6875 0 0.379666 -0.75 0 1.66533e-16 -0.8125 0 -0.379666 -0.875 0 -0.701531 -0.9375 0 -0.916594 -1 0 -0.992115 - -0 0.0625 -0.916594 -0.0625 0.0625 -0.846823 -0.125 0.0625 -0.64813 -0.1875 0.0625 -0.350766 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.350766 -0.375 0.0625 0.64813 -0.4375 0.0625 0.846823 -0.5 0.0625 0.916594 -0.5625 0.0625 0.846823 -0.625 0.0625 0.64813 -0.6875 0.0625 0.350766 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.350766 -0.875 0.0625 -0.64813 -0.9375 0.0625 -0.846823 -1 0.0625 -0.916594 - -0 0.125 -0.701531 -0.0625 0.125 -0.64813 -0.125 0.125 -0.496057 -0.1875 0.125 -0.268464 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.268464 -0.375 0.125 0.496057 -0.4375 0.125 0.64813 -0.5 0.125 0.701531 -0.5625 0.125 0.64813 -0.625 0.125 0.496057 -0.6875 0.125 0.268464 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.268464 -0.875 0.125 -0.496057 -0.9375 0.125 -0.64813 -1 0.125 -0.701531 - -0 0.1875 -0.379666 -0.0625 0.1875 -0.350766 -0.125 0.1875 -0.268464 -0.1875 0.1875 -0.145292 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.145292 -0.375 0.1875 0.268464 -0.4375 0.1875 0.350766 -0.5 0.1875 0.379666 -0.5625 0.1875 0.350766 -0.625 0.1875 0.268464 -0.6875 0.1875 0.145292 -0.75 0.1875 9.19403e-17 -0.8125 0.1875 -0.145292 -0.875 0.1875 -0.268464 -0.9375 0.1875 -0.350766 -1 0.1875 -0.379666 - -0 0.25 -5.55112e-17 -0.0625 0.25 -1.11022e-16 -0.125 0.25 -1.11022e-16 -0.1875 0.25 -2.77556e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 2.77556e-17 -0.375 0.25 1.11022e-16 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 0 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 -1.11022e-16 -1 0.25 -5.55112e-17 - -0 0.3125 0.379666 -0.0625 0.3125 0.350766 -0.125 0.3125 0.268464 -0.1875 0.3125 0.145292 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.145292 -0.375 0.3125 -0.268464 -0.4375 0.3125 -0.350766 -0.5 0.3125 -0.379666 -0.5625 0.3125 -0.350766 -0.625 0.3125 -0.268464 -0.6875 0.3125 -0.145292 -0.75 0.3125 -8.32667e-17 -0.8125 0.3125 0.145292 -0.875 0.3125 0.268464 -0.9375 0.3125 0.350766 -1 0.3125 0.379666 - -0 0.375 0.701531 -0.0625 0.375 0.64813 -0.125 0.375 0.496057 -0.1875 0.375 0.268464 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.268464 -0.375 0.375 -0.496057 -0.4375 0.375 -0.64813 -0.5 0.375 -0.701531 -0.5625 0.375 -0.64813 -0.625 0.375 -0.496057 -0.6875 0.375 -0.268464 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.268464 -0.875 0.375 0.496057 -0.9375 0.375 0.64813 -1 0.375 0.701531 - -0 0.4375 0.916594 -0.0625 0.4375 0.846823 -0.125 0.4375 0.64813 -0.1875 0.4375 0.350766 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.350766 -0.375 0.4375 -0.64813 -0.4375 0.4375 -0.846823 -0.5 0.4375 -0.916594 -0.5625 0.4375 -0.846823 -0.625 0.4375 -0.64813 -0.6875 0.4375 -0.350766 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.350766 -0.875 0.4375 0.64813 -0.9375 0.4375 0.846823 -1 0.4375 0.916594 - -0 0.5 0.992115 -0.0625 0.5 0.916594 -0.125 0.5 0.701531 -0.1875 0.5 0.379666 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.379666 -0.375 0.5 -0.701531 -0.4375 0.5 -0.916594 -0.5 0.5 -0.992115 -0.5625 0.5 -0.916594 -0.625 0.5 -0.701531 -0.6875 0.5 -0.379666 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.379666 -0.875 0.5 0.701531 -0.9375 0.5 0.916594 -1 0.5 0.992115 - -0 0.5625 0.916594 -0.0625 0.5625 0.846823 -0.125 0.5625 0.64813 -0.1875 0.5625 0.350766 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.350766 -0.375 0.5625 -0.64813 -0.4375 0.5625 -0.846823 -0.5 0.5625 -0.916594 -0.5625 0.5625 -0.846823 -0.625 0.5625 -0.64813 -0.6875 0.5625 -0.350766 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.350766 -0.875 0.5625 0.64813 -0.9375 0.5625 0.846823 -1 0.5625 0.916594 - -0 0.625 0.701531 -0.0625 0.625 0.64813 -0.125 0.625 0.496057 -0.1875 0.625 0.268464 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.268464 -0.375 0.625 -0.496057 -0.4375 0.625 -0.64813 -0.5 0.625 -0.701531 -0.5625 0.625 -0.64813 -0.625 0.625 -0.496057 -0.6875 0.625 -0.268464 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.268464 -0.875 0.625 0.496057 -0.9375 0.625 0.64813 -1 0.625 0.701531 - -0 0.6875 0.379666 -0.0625 0.6875 0.350766 -0.125 0.6875 0.268464 -0.1875 0.6875 0.145292 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.145292 -0.375 0.6875 -0.268464 -0.4375 0.6875 -0.350766 -0.5 0.6875 -0.379666 -0.5625 0.6875 -0.350766 -0.625 0.6875 -0.268464 -0.6875 0.6875 -0.145292 -0.75 0.6875 -7.63278e-17 -0.8125 0.6875 0.145292 -0.875 0.6875 0.268464 -0.9375 0.6875 0.350766 -1 0.6875 0.379666 - -0 0.75 1.66533e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 5.55112e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -5.55112e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 1.11022e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.379666 -0.0625 0.8125 -0.350766 -0.125 0.8125 -0.268464 -0.1875 0.8125 -0.145292 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.145292 -0.375 0.8125 0.268464 -0.4375 0.8125 0.350766 -0.5 0.8125 0.379666 -0.5625 0.8125 0.350766 -0.625 0.8125 0.268464 -0.6875 0.8125 0.145292 -0.75 0.8125 8.32667e-17 -0.8125 0.8125 -0.145292 -0.875 0.8125 -0.268464 -0.9375 0.8125 -0.350766 -1 0.8125 -0.379666 - -0 0.875 -0.701531 -0.0625 0.875 -0.64813 -0.125 0.875 -0.496057 -0.1875 0.875 -0.268464 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.268464 -0.375 0.875 0.496057 -0.4375 0.875 0.64813 -0.5 0.875 0.701531 -0.5625 0.875 0.64813 -0.625 0.875 0.496057 -0.6875 0.875 0.268464 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.268464 -0.875 0.875 -0.496057 -0.9375 0.875 -0.64813 -1 0.875 -0.701531 - -0 0.9375 -0.916594 -0.0625 0.9375 -0.846823 -0.125 0.9375 -0.64813 -0.1875 0.9375 -0.350766 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.350766 -0.375 0.9375 0.64813 -0.4375 0.9375 0.846823 -0.5 0.9375 0.916594 -0.5625 0.9375 0.846823 -0.625 0.9375 0.64813 -0.6875 0.9375 0.350766 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.350766 -0.875 0.9375 -0.64813 -0.9375 0.9375 -0.846823 -1 0.9375 -0.916594 - -0 1 -0.992115 -0.0625 1 -0.916594 -0.125 1 -0.701531 -0.1875 1 -0.379666 -0.25 1 -5.55112e-17 -0.3125 1 0.379666 -0.375 1 0.701531 -0.4375 1 0.916594 -0.5 1 0.992115 -0.5625 1 0.916594 -0.625 1 0.701531 -0.6875 1 0.379666 -0.75 1 1.66533e-16 -0.8125 1 -0.379666 -0.875 1 -0.701531 -0.9375 1 -0.916594 -1 1 -0.992115 - - -0 0 -0.995562 -0.0625 0 -0.919779 -0.125 0 -0.703969 -0.1875 0 -0.380985 -0.25 0 -5.55112e-17 -0.3125 0 0.380985 -0.375 0 0.703969 -0.4375 0 0.919779 -0.5 0 0.995562 -0.5625 0 0.919779 -0.625 0 0.703969 -0.6875 0 0.380985 -0.75 0 1.66533e-16 -0.8125 0 -0.380985 -0.875 0 -0.703969 -0.9375 0 -0.919779 -1 0 -0.995562 - -0 0.0625 -0.919779 -0.0625 0.0625 -0.849765 -0.125 0.0625 -0.650382 -0.1875 0.0625 -0.351984 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.351984 -0.375 0.0625 0.650382 -0.4375 0.0625 0.849765 -0.5 0.0625 0.919779 -0.5625 0.0625 0.849765 -0.625 0.0625 0.650382 -0.6875 0.0625 0.351984 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.351984 -0.875 0.0625 -0.650382 -0.9375 0.0625 -0.849765 -1 0.0625 -0.919779 - -0 0.125 -0.703969 -0.0625 0.125 -0.650382 -0.125 0.125 -0.497781 -0.1875 0.125 -0.269397 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.269397 -0.375 0.125 0.497781 -0.4375 0.125 0.650382 -0.5 0.125 0.703969 -0.5625 0.125 0.650382 -0.625 0.125 0.497781 -0.6875 0.125 0.269397 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.269397 -0.875 0.125 -0.497781 -0.9375 0.125 -0.650382 -1 0.125 -0.703969 - -0 0.1875 -0.380985 -0.0625 0.1875 -0.351984 -0.125 0.1875 -0.269397 -0.1875 0.1875 -0.145797 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.145797 -0.375 0.1875 0.269397 -0.4375 0.1875 0.351984 -0.5 0.1875 0.380985 -0.5625 0.1875 0.351984 -0.625 0.1875 0.269397 -0.6875 0.1875 0.145797 -0.75 0.1875 9.19403e-17 -0.8125 0.1875 -0.145797 -0.875 0.1875 -0.269397 -0.9375 0.1875 -0.351984 -1 0.1875 -0.380985 - -0 0.25 -5.55112e-17 -0.0625 0.25 0 -0.125 0.25 0 -0.1875 0.25 -5.55112e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 0 -0.4375 0.25 1.11022e-16 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 0 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 -5.55112e-17 -1 0.25 -5.55112e-17 - -0 0.3125 0.380985 -0.0625 0.3125 0.351984 -0.125 0.3125 0.269397 -0.1875 0.3125 0.145797 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.145797 -0.375 0.3125 -0.269397 -0.4375 0.3125 -0.351984 -0.5 0.3125 -0.380985 -0.5625 0.3125 -0.351984 -0.625 0.3125 -0.269397 -0.6875 0.3125 -0.145797 -0.75 0.3125 -8.32667e-17 -0.8125 0.3125 0.145797 -0.875 0.3125 0.269397 -0.9375 0.3125 0.351984 -1 0.3125 0.380985 - -0 0.375 0.703969 -0.0625 0.375 0.650382 -0.125 0.375 0.497781 -0.1875 0.375 0.269397 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.269397 -0.375 0.375 -0.497781 -0.4375 0.375 -0.650382 -0.5 0.375 -0.703969 -0.5625 0.375 -0.650382 -0.625 0.375 -0.497781 -0.6875 0.375 -0.269397 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.269397 -0.875 0.375 0.497781 -0.9375 0.375 0.650382 -1 0.375 0.703969 - -0 0.4375 0.919779 -0.0625 0.4375 0.849765 -0.125 0.4375 0.650382 -0.1875 0.4375 0.351984 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.351984 -0.375 0.4375 -0.650382 -0.4375 0.4375 -0.849765 -0.5 0.4375 -0.919779 -0.5625 0.4375 -0.849765 -0.625 0.4375 -0.650382 -0.6875 0.4375 -0.351984 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.351984 -0.875 0.4375 0.650382 -0.9375 0.4375 0.849765 -1 0.4375 0.919779 - -0 0.5 0.995562 -0.0625 0.5 0.919779 -0.125 0.5 0.703969 -0.1875 0.5 0.380985 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.380985 -0.375 0.5 -0.703969 -0.4375 0.5 -0.919779 -0.5 0.5 -0.995562 -0.5625 0.5 -0.919779 -0.625 0.5 -0.703969 -0.6875 0.5 -0.380985 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.380985 -0.875 0.5 0.703969 -0.9375 0.5 0.919779 -1 0.5 0.995562 - -0 0.5625 0.919779 -0.0625 0.5625 0.849765 -0.125 0.5625 0.650382 -0.1875 0.5625 0.351984 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.351984 -0.375 0.5625 -0.650382 -0.4375 0.5625 -0.849765 -0.5 0.5625 -0.919779 -0.5625 0.5625 -0.849765 -0.625 0.5625 -0.650382 -0.6875 0.5625 -0.351984 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.351984 -0.875 0.5625 0.650382 -0.9375 0.5625 0.849765 -1 0.5625 0.919779 - -0 0.625 0.703969 -0.0625 0.625 0.650382 -0.125 0.625 0.497781 -0.1875 0.625 0.269397 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.269397 -0.375 0.625 -0.497781 -0.4375 0.625 -0.650382 -0.5 0.625 -0.703969 -0.5625 0.625 -0.650382 -0.625 0.625 -0.497781 -0.6875 0.625 -0.269397 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.269397 -0.875 0.625 0.497781 -0.9375 0.625 0.650382 -1 0.625 0.703969 - -0 0.6875 0.380985 -0.0625 0.6875 0.351984 -0.125 0.6875 0.269397 -0.1875 0.6875 0.145797 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.145797 -0.375 0.6875 -0.269397 -0.4375 0.6875 -0.351984 -0.5 0.6875 -0.380985 -0.5625 0.6875 -0.351984 -0.625 0.6875 -0.269397 -0.6875 0.6875 -0.145797 -0.75 0.6875 -7.63278e-17 -0.8125 0.6875 0.145797 -0.875 0.6875 0.269397 -0.9375 0.6875 0.351984 -1 0.6875 0.380985 - -0 0.75 1.66533e-16 -0.0625 0.75 2.22045e-16 -0.125 0.75 1.66533e-16 -0.1875 0.75 2.77556e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.66533e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 1.66533e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.380985 -0.0625 0.8125 -0.351984 -0.125 0.8125 -0.269397 -0.1875 0.8125 -0.145797 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.145797 -0.375 0.8125 0.269397 -0.4375 0.8125 0.351984 -0.5 0.8125 0.380985 -0.5625 0.8125 0.351984 -0.625 0.8125 0.269397 -0.6875 0.8125 0.145797 -0.75 0.8125 8.32667e-17 -0.8125 0.8125 -0.145797 -0.875 0.8125 -0.269397 -0.9375 0.8125 -0.351984 -1 0.8125 -0.380985 - -0 0.875 -0.703969 -0.0625 0.875 -0.650382 -0.125 0.875 -0.497781 -0.1875 0.875 -0.269397 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.269397 -0.375 0.875 0.497781 -0.4375 0.875 0.650382 -0.5 0.875 0.703969 -0.5625 0.875 0.650382 -0.625 0.875 0.497781 -0.6875 0.875 0.269397 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.269397 -0.875 0.875 -0.497781 -0.9375 0.875 -0.650382 -1 0.875 -0.703969 - -0 0.9375 -0.919779 -0.0625 0.9375 -0.849765 -0.125 0.9375 -0.650382 -0.1875 0.9375 -0.351984 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.351984 -0.375 0.9375 0.650382 -0.4375 0.9375 0.849765 -0.5 0.9375 0.919779 -0.5625 0.9375 0.849765 -0.625 0.9375 0.650382 -0.6875 0.9375 0.351984 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.351984 -0.875 0.9375 -0.650382 -0.9375 0.9375 -0.849765 -1 0.9375 -0.919779 - -0 1 -0.995562 -0.0625 1 -0.919779 -0.125 1 -0.703969 -0.1875 1 -0.380985 -0.25 1 -5.55112e-17 -0.3125 1 0.380985 -0.375 1 0.703969 -0.4375 1 0.919779 -0.5 1 0.995562 -0.5625 1 0.919779 -0.625 1 0.703969 -0.6875 1 0.380985 -0.75 1 1.66533e-16 -0.8125 1 -0.380985 -0.875 1 -0.703969 -0.9375 1 -0.919779 -1 1 -0.995562 - - -0 0 -0.998027 -0.0625 0 -0.922056 -0.125 0 -0.705711 -0.1875 0 -0.381928 -0.25 0 -5.55112e-17 -0.3125 0 0.381928 -0.375 0 0.705711 -0.4375 0 0.922056 -0.5 0 0.998027 -0.5625 0 0.922056 -0.625 0 0.705711 -0.6875 0 0.381928 -0.75 0 1.66533e-16 -0.8125 0 -0.381928 -0.875 0 -0.705711 -0.9375 0 -0.922056 -1 0 -0.998027 - -0 0.0625 -0.922056 -0.0625 0.0625 -0.851869 -0.125 0.0625 -0.651992 -0.1875 0.0625 -0.352856 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.352856 -0.375 0.0625 0.651992 -0.4375 0.0625 0.851869 -0.5 0.0625 0.922056 -0.5625 0.0625 0.851869 -0.625 0.0625 0.651992 -0.6875 0.0625 0.352856 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.352856 -0.875 0.0625 -0.651992 -0.9375 0.0625 -0.851869 -1 0.0625 -0.922056 - -0 0.125 -0.705711 -0.0625 0.125 -0.651992 -0.125 0.125 -0.499013 -0.1875 0.125 -0.270064 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.270064 -0.375 0.125 0.499013 -0.4375 0.125 0.651992 -0.5 0.125 0.705711 -0.5625 0.125 0.651992 -0.625 0.125 0.499013 -0.6875 0.125 0.270064 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.270064 -0.875 0.125 -0.499013 -0.9375 0.125 -0.651992 -1 0.125 -0.705711 - -0 0.1875 -0.381928 -0.0625 0.1875 -0.352856 -0.125 0.1875 -0.270064 -0.1875 0.1875 -0.146158 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.146158 -0.375 0.1875 0.270064 -0.4375 0.1875 0.352856 -0.5 0.1875 0.381928 -0.5625 0.1875 0.352856 -0.625 0.1875 0.270064 -0.6875 0.1875 0.146158 -0.75 0.1875 9.19403e-17 -0.8125 0.1875 -0.146158 -0.875 0.1875 -0.270064 -0.9375 0.1875 -0.352856 -1 0.1875 -0.381928 - -0 0.25 -5.55112e-17 -0.0625 0.25 -1.11022e-16 -0.125 0.25 0 -0.1875 0.25 -5.55112e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 0 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 5.55112e-17 -0.625 0.25 0 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 -1.11022e-16 -1 0.25 -5.55112e-17 - -0 0.3125 0.381928 -0.0625 0.3125 0.352856 -0.125 0.3125 0.270064 -0.1875 0.3125 0.146158 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.146158 -0.375 0.3125 -0.270064 -0.4375 0.3125 -0.352856 -0.5 0.3125 -0.381928 -0.5625 0.3125 -0.352856 -0.625 0.3125 -0.270064 -0.6875 0.3125 -0.146158 -0.75 0.3125 -8.32667e-17 -0.8125 0.3125 0.146158 -0.875 0.3125 0.270064 -0.9375 0.3125 0.352856 -1 0.3125 0.381928 - -0 0.375 0.705711 -0.0625 0.375 0.651992 -0.125 0.375 0.499013 -0.1875 0.375 0.270064 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.270064 -0.375 0.375 -0.499013 -0.4375 0.375 -0.651992 -0.5 0.375 -0.705711 -0.5625 0.375 -0.651992 -0.625 0.375 -0.499013 -0.6875 0.375 -0.270064 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.270064 -0.875 0.375 0.499013 -0.9375 0.375 0.651992 -1 0.375 0.705711 - -0 0.4375 0.922056 -0.0625 0.4375 0.851869 -0.125 0.4375 0.651992 -0.1875 0.4375 0.352856 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.352856 -0.375 0.4375 -0.651992 -0.4375 0.4375 -0.851869 -0.5 0.4375 -0.922056 -0.5625 0.4375 -0.851869 -0.625 0.4375 -0.651992 -0.6875 0.4375 -0.352856 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.352856 -0.875 0.4375 0.651992 -0.9375 0.4375 0.851869 -1 0.4375 0.922056 - -0 0.5 0.998027 -0.0625 0.5 0.922056 -0.125 0.5 0.705711 -0.1875 0.5 0.381928 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.381928 -0.375 0.5 -0.705711 -0.4375 0.5 -0.922056 -0.5 0.5 -0.998027 -0.5625 0.5 -0.922056 -0.625 0.5 -0.705711 -0.6875 0.5 -0.381928 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.381928 -0.875 0.5 0.705711 -0.9375 0.5 0.922056 -1 0.5 0.998027 - -0 0.5625 0.922056 -0.0625 0.5625 0.851869 -0.125 0.5625 0.651992 -0.1875 0.5625 0.352856 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.352856 -0.375 0.5625 -0.651992 -0.4375 0.5625 -0.851869 -0.5 0.5625 -0.922056 -0.5625 0.5625 -0.851869 -0.625 0.5625 -0.651992 -0.6875 0.5625 -0.352856 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.352856 -0.875 0.5625 0.651992 -0.9375 0.5625 0.851869 -1 0.5625 0.922056 - -0 0.625 0.705711 -0.0625 0.625 0.651992 -0.125 0.625 0.499013 -0.1875 0.625 0.270064 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.270064 -0.375 0.625 -0.499013 -0.4375 0.625 -0.651992 -0.5 0.625 -0.705711 -0.5625 0.625 -0.651992 -0.625 0.625 -0.499013 -0.6875 0.625 -0.270064 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.270064 -0.875 0.625 0.499013 -0.9375 0.625 0.651992 -1 0.625 0.705711 - -0 0.6875 0.381928 -0.0625 0.6875 0.352856 -0.125 0.6875 0.270064 -0.1875 0.6875 0.146158 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.146158 -0.375 0.6875 -0.270064 -0.4375 0.6875 -0.352856 -0.5 0.6875 -0.381928 -0.5625 0.6875 -0.352856 -0.625 0.6875 -0.270064 -0.6875 0.6875 -0.146158 -0.75 0.6875 -7.63278e-17 -0.8125 0.6875 0.146158 -0.875 0.6875 0.270064 -0.9375 0.6875 0.352856 -1 0.6875 0.381928 - -0 0.75 1.66533e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 1.66533e-16 -0.1875 0.75 2.77556e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.66533e-16 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -1.66533e-16 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 1.11022e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.381928 -0.0625 0.8125 -0.352856 -0.125 0.8125 -0.270064 -0.1875 0.8125 -0.146158 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.146158 -0.375 0.8125 0.270064 -0.4375 0.8125 0.352856 -0.5 0.8125 0.381928 -0.5625 0.8125 0.352856 -0.625 0.8125 0.270064 -0.6875 0.8125 0.146158 -0.75 0.8125 8.32667e-17 -0.8125 0.8125 -0.146158 -0.875 0.8125 -0.270064 -0.9375 0.8125 -0.352856 -1 0.8125 -0.381928 - -0 0.875 -0.705711 -0.0625 0.875 -0.651992 -0.125 0.875 -0.499013 -0.1875 0.875 -0.270064 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.270064 -0.375 0.875 0.499013 -0.4375 0.875 0.651992 -0.5 0.875 0.705711 -0.5625 0.875 0.651992 -0.625 0.875 0.499013 -0.6875 0.875 0.270064 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.270064 -0.875 0.875 -0.499013 -0.9375 0.875 -0.651992 -1 0.875 -0.705711 - -0 0.9375 -0.922056 -0.0625 0.9375 -0.851869 -0.125 0.9375 -0.651992 -0.1875 0.9375 -0.352856 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.352856 -0.375 0.9375 0.651992 -0.4375 0.9375 0.851869 -0.5 0.9375 0.922056 -0.5625 0.9375 0.851869 -0.625 0.9375 0.651992 -0.6875 0.9375 0.352856 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.352856 -0.875 0.9375 -0.651992 -0.9375 0.9375 -0.851869 -1 0.9375 -0.922056 - -0 1 -0.998027 -0.0625 1 -0.922056 -0.125 1 -0.705711 -0.1875 1 -0.381928 -0.25 1 -5.55112e-17 -0.3125 1 0.381928 -0.375 1 0.705711 -0.4375 1 0.922056 -0.5 1 0.998027 -0.5625 1 0.922056 -0.625 1 0.705711 -0.6875 1 0.381928 -0.75 1 1.66533e-16 -0.8125 1 -0.381928 -0.875 1 -0.705711 -0.9375 1 -0.922056 -1 1 -0.998027 - - -0 0 -0.999507 -0.0625 0 -0.923424 -0.125 0 -0.706758 -0.1875 0 -0.382495 -0.25 0 -5.55112e-17 -0.3125 0 0.382495 -0.375 0 0.706758 -0.4375 0 0.923424 -0.5 0 0.999507 -0.5625 0 0.923424 -0.625 0 0.706758 -0.6875 0 0.382495 -0.75 0 1.66533e-16 -0.8125 0 -0.382495 -0.875 0 -0.706758 -0.9375 0 -0.923424 -1 0 -0.999507 - -0 0.0625 -0.923424 -0.0625 0.0625 -0.853132 -0.125 0.0625 -0.652959 -0.1875 0.0625 -0.353379 -0.25 0.0625 -4.85723e-17 -0.3125 0.0625 0.353379 -0.375 0.0625 0.652959 -0.4375 0.0625 0.853132 -0.5 0.0625 0.923424 -0.5625 0.0625 0.853132 -0.625 0.0625 0.652959 -0.6875 0.0625 0.353379 -0.75 0.0625 1.73472e-16 -0.8125 0.0625 -0.353379 -0.875 0.0625 -0.652959 -0.9375 0.0625 -0.853132 -1 0.0625 -0.923424 - -0 0.125 -0.706758 -0.0625 0.125 -0.652959 -0.125 0.125 -0.499753 -0.1875 0.125 -0.270465 -0.25 0.125 -4.16334e-17 -0.3125 0.125 0.270465 -0.375 0.125 0.499753 -0.4375 0.125 0.652959 -0.5 0.125 0.706758 -0.5625 0.125 0.652959 -0.625 0.125 0.499753 -0.6875 0.125 0.270465 -0.75 0.125 1.249e-16 -0.8125 0.125 -0.270465 -0.875 0.125 -0.499753 -0.9375 0.125 -0.652959 -1 0.125 -0.706758 - -0 0.1875 -0.382495 -0.0625 0.1875 -0.353379 -0.125 0.1875 -0.270465 -0.1875 0.1875 -0.146374 -0.25 0.1875 -1.9082e-17 -0.3125 0.1875 0.146374 -0.375 0.1875 0.270465 -0.4375 0.1875 0.353379 -0.5 0.1875 0.382495 -0.5625 0.1875 0.353379 -0.625 0.1875 0.270465 -0.6875 0.1875 0.146374 -0.75 0.1875 9.19403e-17 -0.8125 0.1875 -0.146374 -0.875 0.1875 -0.270465 -0.9375 0.1875 -0.353379 -1 0.1875 -0.382495 - -0 0.25 -5.55112e-17 -0.0625 0.25 -5.55112e-17 -0.125 0.25 -1.11022e-16 -0.1875 0.25 -5.55112e-17 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 1.11022e-16 -0.4375 0.25 5.55112e-17 -0.5 0.25 5.55112e-17 -0.5625 0.25 0 -0.625 0.25 1.11022e-16 -0.6875 0.25 2.77556e-17 -0.75 0.25 1.2326e-32 -0.8125 0.25 0 -0.875 0.25 0 -0.9375 0.25 -1.11022e-16 -1 0.25 -5.55112e-17 - -0 0.3125 0.382495 -0.0625 0.3125 0.353379 -0.125 0.3125 0.270465 -0.1875 0.3125 0.146374 -0.25 0.3125 2.77556e-17 -0.3125 0.3125 -0.146374 -0.375 0.3125 -0.270465 -0.4375 0.3125 -0.353379 -0.5 0.3125 -0.382495 -0.5625 0.3125 -0.353379 -0.625 0.3125 -0.270465 -0.6875 0.3125 -0.146374 -0.75 0.3125 -8.32667e-17 -0.8125 0.3125 0.146374 -0.875 0.3125 0.270465 -0.9375 0.3125 0.353379 -1 0.3125 0.382495 - -0 0.375 0.706758 -0.0625 0.375 0.652959 -0.125 0.375 0.499753 -0.1875 0.375 0.270465 -0.25 0.375 5.55112e-17 -0.3125 0.375 -0.270465 -0.375 0.375 -0.499753 -0.4375 0.375 -0.652959 -0.5 0.375 -0.706758 -0.5625 0.375 -0.652959 -0.625 0.375 -0.499753 -0.6875 0.375 -0.270465 -0.75 0.375 -1.11022e-16 -0.8125 0.375 0.270465 -0.875 0.375 0.499753 -0.9375 0.375 0.652959 -1 0.375 0.706758 - -0 0.4375 0.923424 -0.0625 0.4375 0.853132 -0.125 0.4375 0.652959 -0.1875 0.4375 0.353379 -0.25 0.4375 5.55112e-17 -0.3125 0.4375 -0.353379 -0.375 0.4375 -0.652959 -0.4375 0.4375 -0.853132 -0.5 0.4375 -0.923424 -0.5625 0.4375 -0.853132 -0.625 0.4375 -0.652959 -0.6875 0.4375 -0.353379 -0.75 0.4375 -1.66533e-16 -0.8125 0.4375 0.353379 -0.875 0.4375 0.652959 -0.9375 0.4375 0.853132 -1 0.4375 0.923424 - -0 0.5 0.999507 -0.0625 0.5 0.923424 -0.125 0.5 0.706758 -0.1875 0.5 0.382495 -0.25 0.5 5.55112e-17 -0.3125 0.5 -0.382495 -0.375 0.5 -0.706758 -0.4375 0.5 -0.923424 -0.5 0.5 -0.999507 -0.5625 0.5 -0.923424 -0.625 0.5 -0.706758 -0.6875 0.5 -0.382495 -0.75 0.5 -1.66533e-16 -0.8125 0.5 0.382495 -0.875 0.5 0.706758 -0.9375 0.5 0.923424 -1 0.5 0.999507 - -0 0.5625 0.923424 -0.0625 0.5625 0.853132 -0.125 0.5625 0.652959 -0.1875 0.5625 0.353379 -0.25 0.5625 6.245e-17 -0.3125 0.5625 -0.353379 -0.375 0.5625 -0.652959 -0.4375 0.5625 -0.853132 -0.5 0.5625 -0.923424 -0.5625 0.5625 -0.853132 -0.625 0.5625 -0.652959 -0.6875 0.5625 -0.353379 -0.75 0.5625 -1.59595e-16 -0.8125 0.5625 0.353379 -0.875 0.5625 0.652959 -0.9375 0.5625 0.853132 -1 0.5625 0.923424 - -0 0.625 0.706758 -0.0625 0.625 0.652959 -0.125 0.625 0.499753 -0.1875 0.625 0.270465 -0.25 0.625 6.93889e-17 -0.3125 0.625 -0.270465 -0.375 0.625 -0.499753 -0.4375 0.625 -0.652959 -0.5 0.625 -0.706758 -0.5625 0.625 -0.652959 -0.625 0.625 -0.499753 -0.6875 0.625 -0.270465 -0.75 0.625 -9.71445e-17 -0.8125 0.625 0.270465 -0.875 0.625 0.499753 -0.9375 0.625 0.652959 -1 0.625 0.706758 - -0 0.6875 0.382495 -0.0625 0.6875 0.353379 -0.125 0.6875 0.270465 -0.1875 0.6875 0.146374 -0.25 0.6875 3.46945e-17 -0.3125 0.6875 -0.146374 -0.375 0.6875 -0.270465 -0.4375 0.6875 -0.353379 -0.5 0.6875 -0.382495 -0.5625 0.6875 -0.353379 -0.625 0.6875 -0.270465 -0.6875 0.6875 -0.146374 -0.75 0.6875 -7.63278e-17 -0.8125 0.6875 0.146374 -0.875 0.6875 0.270465 -0.9375 0.6875 0.353379 -1 0.6875 0.382495 - -0 0.75 1.66533e-16 -0.0625 0.75 1.66533e-16 -0.125 0.75 5.55112e-17 -0.1875 0.75 2.77556e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -5.55112e-17 -0.4375 0.75 -1.66533e-16 -0.5 0.75 -1.66533e-16 -0.5625 0.75 -2.22045e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -5.55112e-17 -0.75 0.75 -3.69779e-32 -0.8125 0.75 8.32667e-17 -0.875 0.75 1.66533e-16 -0.9375 0.75 1.11022e-16 -1 0.75 1.66533e-16 - -0 0.8125 -0.382495 -0.0625 0.8125 -0.353379 -0.125 0.8125 -0.270465 -0.1875 0.8125 -0.146374 -0.25 0.8125 -2.77556e-17 -0.3125 0.8125 0.146374 -0.375 0.8125 0.270465 -0.4375 0.8125 0.353379 -0.5 0.8125 0.382495 -0.5625 0.8125 0.353379 -0.625 0.8125 0.270465 -0.6875 0.8125 0.146374 -0.75 0.8125 8.32667e-17 -0.8125 0.8125 -0.146374 -0.875 0.8125 -0.270465 -0.9375 0.8125 -0.353379 -1 0.8125 -0.382495 - -0 0.875 -0.706758 -0.0625 0.875 -0.652959 -0.125 0.875 -0.499753 -0.1875 0.875 -0.270465 -0.25 0.875 -5.55112e-17 -0.3125 0.875 0.270465 -0.375 0.875 0.499753 -0.4375 0.875 0.652959 -0.5 0.875 0.706758 -0.5625 0.875 0.652959 -0.625 0.875 0.499753 -0.6875 0.875 0.270465 -0.75 0.875 1.11022e-16 -0.8125 0.875 -0.270465 -0.875 0.875 -0.499753 -0.9375 0.875 -0.652959 -1 0.875 -0.706758 - -0 0.9375 -0.923424 -0.0625 0.9375 -0.853132 -0.125 0.9375 -0.652959 -0.1875 0.9375 -0.353379 -0.25 0.9375 -5.55112e-17 -0.3125 0.9375 0.353379 -0.375 0.9375 0.652959 -0.4375 0.9375 0.853132 -0.5 0.9375 0.923424 -0.5625 0.9375 0.853132 -0.625 0.9375 0.652959 -0.6875 0.9375 0.353379 -0.75 0.9375 1.66533e-16 -0.8125 0.9375 -0.353379 -0.875 0.9375 -0.652959 -0.9375 0.9375 -0.853132 -1 0.9375 -0.923424 - -0 1 -0.999507 -0.0625 1 -0.923424 -0.125 1 -0.706758 -0.1875 1 -0.382495 -0.25 1 -5.55112e-17 -0.3125 1 0.382495 -0.375 1 0.706758 -0.4375 1 0.923424 -0.5 1 0.999507 -0.5625 1 0.923424 -0.625 1 0.706758 -0.6875 1 0.382495 -0.75 1 1.66533e-16 -0.8125 1 -0.382495 -0.875 1 -0.706758 -0.9375 1 -0.923424 -1 1 -0.999507 - - -0 0 -1 -0.0625 0 -0.92388 -0.125 0 -0.707107 -0.1875 0 -0.382683 -0.25 0 0 -0.3125 0 0.382683 -0.375 0 0.707107 -0.4375 0 0.92388 -0.5 0 1 -0.5625 0 0.92388 -0.625 0 0.707107 -0.6875 0 0.382683 -0.75 0 2.22045e-16 -0.8125 0 -0.382683 -0.875 0 -0.707107 -0.9375 0 -0.92388 -1 0 -1 - -0 0.0625 -0.92388 -0.0625 0.0625 -0.853553 -0.125 0.0625 -0.653281 -0.1875 0.0625 -0.353553 -0.25 0.0625 -6.93889e-18 -0.3125 0.0625 0.353553 -0.375 0.0625 0.653281 -0.4375 0.0625 0.853553 -0.5 0.0625 0.92388 -0.5625 0.0625 0.853553 -0.625 0.0625 0.653281 -0.6875 0.0625 0.353553 -0.75 0.0625 2.15106e-16 -0.8125 0.0625 -0.353553 -0.875 0.0625 -0.653281 -0.9375 0.0625 -0.853553 -1 0.0625 -0.92388 - -0 0.125 -0.707107 -0.0625 0.125 -0.653281 -0.125 0.125 -0.5 -0.1875 0.125 -0.270598 -0.25 0.125 -1.38778e-17 -0.3125 0.125 0.270598 -0.375 0.125 0.5 -0.4375 0.125 0.653281 -0.5 0.125 0.707107 -0.5625 0.125 0.653281 -0.625 0.125 0.5 -0.6875 0.125 0.270598 -0.75 0.125 1.52656e-16 -0.8125 0.125 -0.270598 -0.875 0.125 -0.5 -0.9375 0.125 -0.653281 -1 0.125 -0.707107 - -0 0.1875 -0.382683 -0.0625 0.1875 -0.353553 -0.125 0.1875 -0.270598 -0.1875 0.1875 -0.146447 -0.25 0.1875 -5.20417e-18 -0.3125 0.1875 0.146447 -0.375 0.1875 0.270598 -0.4375 0.1875 0.353553 -0.5 0.1875 0.382683 -0.5625 0.1875 0.353553 -0.625 0.1875 0.270598 -0.6875 0.1875 0.146447 -0.75 0.1875 1.05818e-16 -0.8125 0.1875 -0.146447 -0.875 0.1875 -0.270598 -0.9375 0.1875 -0.353553 -1 0.1875 -0.382683 - -0 0.25 0 -0.0625 0.25 -1.11022e-16 -0.125 0.25 -5.55112e-17 -0.1875 0.25 0 -0.25 0.25 -6.16298e-33 -0.3125 0.25 5.55112e-17 -0.375 0.25 5.55112e-17 -0.4375 0.25 1.11022e-16 -0.5 0.25 0 -0.5625 0.25 5.55112e-17 -0.625 0.25 1.11022e-16 -0.6875 0.25 5.55112e-17 -0.75 0.25 0 -0.8125 0.25 -5.55112e-17 -0.875 0.25 -1.11022e-16 -0.9375 0.25 -5.55112e-17 -1 0.25 0 - -0 0.3125 0.382683 -0.0625 0.3125 0.353553 -0.125 0.3125 0.270598 -0.1875 0.3125 0.146447 -0.25 0.3125 1.38778e-17 -0.3125 0.3125 -0.146447 -0.375 0.3125 -0.270598 -0.4375 0.3125 -0.353553 -0.5 0.3125 -0.382683 -0.5625 0.3125 -0.353553 -0.625 0.3125 -0.270598 -0.6875 0.3125 -0.146447 -0.75 0.3125 -9.71445e-17 -0.8125 0.3125 0.146447 -0.875 0.3125 0.270598 -0.9375 0.3125 0.353553 -1 0.3125 0.382683 - -0 0.375 0.707107 -0.0625 0.375 0.653281 -0.125 0.375 0.5 -0.1875 0.375 0.270598 -0.25 0.375 2.77556e-17 -0.3125 0.375 -0.270598 -0.375 0.375 -0.5 -0.4375 0.375 -0.653281 -0.5 0.375 -0.707107 -0.5625 0.375 -0.653281 -0.625 0.375 -0.5 -0.6875 0.375 -0.270598 -0.75 0.375 -1.38778e-16 -0.8125 0.375 0.270598 -0.875 0.375 0.5 -0.9375 0.375 0.653281 -1 0.375 0.707107 - -0 0.4375 0.92388 -0.0625 0.4375 0.853553 -0.125 0.4375 0.653281 -0.1875 0.4375 0.353553 -0.25 0.4375 1.38778e-17 -0.3125 0.4375 -0.353553 -0.375 0.4375 -0.653281 -0.4375 0.4375 -0.853553 -0.5 0.4375 -0.92388 -0.5625 0.4375 -0.853553 -0.625 0.4375 -0.653281 -0.6875 0.4375 -0.353553 -0.75 0.4375 -2.08167e-16 -0.8125 0.4375 0.353553 -0.875 0.4375 0.653281 -0.9375 0.4375 0.853553 -1 0.4375 0.92388 - -0 0.5 1 -0.0625 0.5 0.92388 -0.125 0.5 0.707107 -0.1875 0.5 0.382683 -0.25 0.5 0 -0.3125 0.5 -0.382683 -0.375 0.5 -0.707107 -0.4375 0.5 -0.92388 -0.5 0.5 -1 -0.5625 0.5 -0.92388 -0.625 0.5 -0.707107 -0.6875 0.5 -0.382683 -0.75 0.5 -2.22045e-16 -0.8125 0.5 0.382683 -0.875 0.5 0.707107 -0.9375 0.5 0.92388 -1 0.5 1 - -0 0.5625 0.92388 -0.0625 0.5625 0.853553 -0.125 0.5625 0.653281 -0.1875 0.5625 0.353553 -0.25 0.5625 2.08167e-17 -0.3125 0.5625 -0.353553 -0.375 0.5625 -0.653281 -0.4375 0.5625 -0.853553 -0.5 0.5625 -0.92388 -0.5625 0.5625 -0.853553 -0.625 0.5625 -0.653281 -0.6875 0.5625 -0.353553 -0.75 0.5625 -2.01228e-16 -0.8125 0.5625 0.353553 -0.875 0.5625 0.653281 -0.9375 0.5625 0.853553 -1 0.5625 0.92388 - -0 0.625 0.707107 -0.0625 0.625 0.653281 -0.125 0.625 0.5 -0.1875 0.625 0.270598 -0.25 0.625 4.16334e-17 -0.3125 0.625 -0.270598 -0.375 0.625 -0.5 -0.4375 0.625 -0.653281 -0.5 0.625 -0.707107 -0.5625 0.625 -0.653281 -0.625 0.625 -0.5 -0.6875 0.625 -0.270598 -0.75 0.625 -1.249e-16 -0.8125 0.625 0.270598 -0.875 0.625 0.5 -0.9375 0.625 0.653281 -1 0.625 0.707107 - -0 0.6875 0.382683 -0.0625 0.6875 0.353553 -0.125 0.6875 0.270598 -0.1875 0.6875 0.146447 -0.25 0.6875 2.08167e-17 -0.3125 0.6875 -0.146447 -0.375 0.6875 -0.270598 -0.4375 0.6875 -0.353553 -0.5 0.6875 -0.382683 -0.5625 0.6875 -0.353553 -0.625 0.6875 -0.270598 -0.6875 0.6875 -0.146447 -0.75 0.6875 -9.02056e-17 -0.8125 0.6875 0.146447 -0.875 0.6875 0.270598 -0.9375 0.6875 0.353553 -1 0.6875 0.382683 - -0 0.75 2.22045e-16 -0.0625 0.75 1.11022e-16 -0.125 0.75 1.11022e-16 -0.1875 0.75 8.32667e-17 -0.25 0.75 1.2326e-32 -0.3125 0.75 -2.77556e-17 -0.375 0.75 -1.11022e-16 -0.4375 0.75 -1.11022e-16 -0.5 0.75 -2.22045e-16 -0.5625 0.75 -1.66533e-16 -0.625 0.75 -5.55112e-17 -0.6875 0.75 -2.77556e-17 -0.75 0.75 -4.93038e-32 -0.8125 0.75 2.77556e-17 -0.875 0.75 5.55112e-17 -0.9375 0.75 1.66533e-16 -1 0.75 2.22045e-16 - -0 0.8125 -0.382683 -0.0625 0.8125 -0.353553 -0.125 0.8125 -0.270598 -0.1875 0.8125 -0.146447 -0.25 0.8125 -1.38778e-17 -0.3125 0.8125 0.146447 -0.375 0.8125 0.270598 -0.4375 0.8125 0.353553 -0.5 0.8125 0.382683 -0.5625 0.8125 0.353553 -0.625 0.8125 0.270598 -0.6875 0.8125 0.146447 -0.75 0.8125 9.71445e-17 -0.8125 0.8125 -0.146447 -0.875 0.8125 -0.270598 -0.9375 0.8125 -0.353553 -1 0.8125 -0.382683 - -0 0.875 -0.707107 -0.0625 0.875 -0.653281 -0.125 0.875 -0.5 -0.1875 0.875 -0.270598 -0.25 0.875 -2.77556e-17 -0.3125 0.875 0.270598 -0.375 0.875 0.5 -0.4375 0.875 0.653281 -0.5 0.875 0.707107 -0.5625 0.875 0.653281 -0.625 0.875 0.5 -0.6875 0.875 0.270598 -0.75 0.875 1.38778e-16 -0.8125 0.875 -0.270598 -0.875 0.875 -0.5 -0.9375 0.875 -0.653281 -1 0.875 -0.707107 - -0 0.9375 -0.92388 -0.0625 0.9375 -0.853553 -0.125 0.9375 -0.653281 -0.1875 0.9375 -0.353553 -0.25 0.9375 -1.38778e-17 -0.3125 0.9375 0.353553 -0.375 0.9375 0.653281 -0.4375 0.9375 0.853553 -0.5 0.9375 0.92388 -0.5625 0.9375 0.853553 -0.625 0.9375 0.653281 -0.6875 0.9375 0.353553 -0.75 0.9375 2.08167e-16 -0.8125 0.9375 -0.353553 -0.875 0.9375 -0.653281 -0.9375 0.9375 -0.853553 -1 0.9375 -0.92388 - -0 1 -1 -0.0625 1 -0.92388 -0.125 1 -0.707107 -0.1875 1 -0.382683 -0.25 1 0 -0.3125 1 0.382683 -0.375 1 0.707107 -0.4375 1 0.92388 -0.5 1 1 -0.5625 1 0.92388 -0.625 1 0.707107 -0.6875 1 0.382683 -0.75 1 2.22045e-16 -0.8125 1 -0.382683 -0.875 1 -0.707107 -0.9375 1 -0.92388 -1 1 -1 - - diff --git a/distributedcombigrid/examples/combi_example/out/solution_1.dat0 b/distributedcombigrid/examples/combi_example/out/solution_1.dat0 new file mode 100644 index 000000000..920b27510 Binary files /dev/null and b/distributedcombigrid/examples/combi_example/out/solution_1.dat0 differ diff --git a/distributedcombigrid/examples/combi_example/p0.json b/distributedcombigrid/examples/combi_example/p0.json new file mode 100644 index 000000000..039d753e4 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p0.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "8", + "Y": "8", + "Z": "8" + }, + "NSubdivisionsV": { + "X": "8", + "Y": "8", + "Z": "8" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p1.json b/distributedcombigrid/examples/combi_example/p1.json new file mode 100644 index 000000000..28c276819 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p1.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "16", + "Y": "16", + "Z": "16" + }, + "NSubdivisionsV": { + "X": "8", + "Y": "8", + "Z": "8" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p10.json b/distributedcombigrid/examples/combi_example/p10.json new file mode 100644 index 000000000..5d11febc9 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p10.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "16", + "Y": "16", + "Z": "16" + }, + "NSubdivisionsV": { + "X": "256", + "Y": "256", + "Z": "256" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p11.json b/distributedcombigrid/examples/combi_example/p11.json new file mode 100644 index 000000000..449b9753b --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p11.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "32", + "Y": "32", + "Z": "32" + }, + "NSubdivisionsV": { + "X": "256", + "Y": "256", + "Z": "256" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p12.json b/distributedcombigrid/examples/combi_example/p12.json new file mode 100644 index 000000000..dc1dee61d --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p12.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "8", + "Y": "8", + "Z": "8" + }, + "NSubdivisionsV": { + "X": "512", + "Y": "512", + "Z": "512" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p13.json b/distributedcombigrid/examples/combi_example/p13.json new file mode 100644 index 000000000..2bacf9fb7 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p13.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "16", + "Y": "16", + "Z": "16" + }, + "NSubdivisionsV": { + "X": "512", + "Y": "512", + "Z": "512" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p14.json b/distributedcombigrid/examples/combi_example/p14.json new file mode 100644 index 000000000..0afd4b3fe --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p14.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "8", + "Y": "8", + "Z": "8" + }, + "NSubdivisionsV": { + "X": "1024", + "Y": "1024", + "Z": "1024" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p2.json b/distributedcombigrid/examples/combi_example/p2.json new file mode 100644 index 000000000..d94646bb3 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p2.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "4", + "Y": "4", + "Z": "4" + }, + "NSubdivisionsV": { + "X": "16", + "Y": "16", + "Z": "16" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p3.json b/distributedcombigrid/examples/combi_example/p3.json new file mode 100644 index 000000000..3a58831e2 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p3.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "8", + "Y": "8", + "Z": "8" + }, + "NSubdivisionsV": { + "X": "16", + "Y": "16", + "Z": "16" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p4.json b/distributedcombigrid/examples/combi_example/p4.json new file mode 100644 index 000000000..565cc851d --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p4.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "4", + "Y": "4", + "Z": "4" + }, + "NSubdivisionsV": { + "X": "32", + "Y": "32", + "Z": "32" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p5.json b/distributedcombigrid/examples/combi_example/p5.json new file mode 100644 index 000000000..0b3d86b9d --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p5.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "256", + "Y": "256", + "Z": "256" + }, + "NSubdivisionsV": { + "X": "32", + "Y": "32", + "Z": "32" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p6.json b/distributedcombigrid/examples/combi_example/p6.json new file mode 100644 index 000000000..d305fc50b --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p6.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "64", + "Y": "64", + "Z": "64" + }, + "NSubdivisionsV": { + "X": "64", + "Y": "64", + "Z": "64" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p7.json b/distributedcombigrid/examples/combi_example/p7.json new file mode 100644 index 000000000..6552947c4 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p7.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "128", + "Y": "128", + "Z": "128" + }, + "NSubdivisionsV": { + "X": "64", + "Y": "64", + "Z": "64" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p8.json b/distributedcombigrid/examples/combi_example/p8.json new file mode 100644 index 000000000..11c97aff3 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p8.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "32", + "Y": "32", + "Z": "32" + }, + "NSubdivisionsV": { + "X": "128", + "Y": "128", + "Z": "128" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example/p9.json b/distributedcombigrid/examples/combi_example/p9.json new file mode 100644 index 000000000..73d946ac8 --- /dev/null +++ b/distributedcombigrid/examples/combi_example/p9.json @@ -0,0 +1,44 @@ +{ + "General": { + "DimX": "1", + "DimV": "1", + "DegreeX": "1", + "DegreeV": "1", + "PartitionX": "1", + "PartitionV": "1", + "Case": "hyperrectangle" + }, + "Case": { + "NRefinementsX": "0", + "NRefinementsV": "0", + "PeriodicX": "true", + "PeriodicV": "true", + "NSubdivisionsX": { + "X": "64", + "Y": "64", + "Z": "64" + }, + "NSubdivisionsV": { + "X": "128", + "Y": "128", + "Z": "128" + } + }, + "SpatialDiscretization": { + "TriangulationType": "FullyDistributed", + "MappingX": "1", + "MappingV": "1" + }, + "TemporalDiscretization": { + "FinalTime": "2", + "CFLNumber": "0.14999999999999999" + }, + "Postprocessing": { + "StandardOutput": { + "Tick": "0.10000000000000001" + }, + "VTK": { + "Enabled": "false" + } + } +} diff --git a/distributedcombigrid/examples/combi_example_faults/HelperFunctions.hpp b/distributedcombigrid/examples/combi_example_faults/HelperFunctions.hpp index e045b90c7..af67c6c79 100644 --- a/distributedcombigrid/examples/combi_example_faults/HelperFunctions.hpp +++ b/distributedcombigrid/examples/combi_example_faults/HelperFunctions.hpp @@ -66,19 +66,19 @@ void readParameterFile(const std::string& fileName, size_t &ngroup, size_t &npro boost::property_tree::ini_parser::read_ini(fileName, cfg); ngroup = cfg.get("manager.ngroup"); - nprocs = cfg.get("manager.nprocs"); + nprocs = cfg.get("manager.nprocs"); //this here is the partition - dim = cfg.get("ct.dim"); + dim = cfg.get("ct.dim"); //this is the dim, i assume dimX=dimV lmin.resize(dim); lmax.resize(dim); leval.resize(dim); p.resize(dim); - cfg.get("ct.lmin") >> lmin; + cfg.get("ct.lmin") >> lmin; //lmin und lmax bekomm ich aus degreeX=lmax cfg.get("ct.lmax") >> lmax; - cfg.get("ct.leval") >> leval; - cfg.get("ct.p") >> p; + cfg.get("ct.leval") >> leval; //was ist leval???? + cfg.get("ct.p") >> p; // p are the parameters -> i need to calculate these ncombi = cfg.get("ct.ncombi"); dt = cfg.get("application.dt"); diff --git a/distributedcombigrid/examples/combi_example_faults/Makefile b/distributedcombigrid/examples/combi_example_faults/Makefile new file mode 100644 index 000000000..c5d32c2de --- /dev/null +++ b/distributedcombigrid/examples/combi_example_faults/Makefile @@ -0,0 +1,26 @@ +CC=mpicxx.mpich +CFLAGS=-std=c++11 -g -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall +#CFLAGS+=-DSIMFTMPI + +SGPP_DIR=/home/sgsscratch/goehrims/combi +GLPK_DIR=/home/sgsscratch/goehrims/combi/glpk + +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LDIR=$(LD_SGPP) $(LD_GLPK) +INC=$(INC_SGPP) $(INC_GLPK) + + + +LIBS=-lsgppdistributedcombigrid -lboost_serialization + +all: combi_example_faults + +combi_example_faults: combi_example_faults.cpp TaskExample.hpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -o combi_example_faults combi_example_faults.cpp $(LIBS) + +clean: + rm -f *.o out/* combi_example_faults diff --git a/distributedcombigrid/examples/dealii_example/.gitignore b/distributedcombigrid/examples/dealii_example/.gitignore new file mode 100644 index 000000000..8d69778b3 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/.gitignore @@ -0,0 +1 @@ +*.vtu diff --git a/distributedcombigrid/examples/dealii_example/DataConverter.cpp b/distributedcombigrid/examples/dealii_example/DataConverter.cpp new file mode 100644 index 000000000..2967eda98 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/DataConverter.cpp @@ -0,0 +1,252 @@ +#include +#include +#include +#include +#include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" + +#include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" +#include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" +#include +#include + +#include "sgpp/distributedcombigrid/utils/Types.hpp" +#include "DataConverter.hpp" + +using namespace combigrid; + + + Converter::Converter(){}; + void Converter::toParam(std::string _filename, std::string newname){ + namespace pt = boost::property_tree; + + // Create a root + pt::ptree root,ini_root,ini_ct, ini_application, ini_manager; + + // Load the json file in this ptree + try{ + pt::read_json(_filename, root); + int dimx=root.get("General.DimX"); + int dimv=root.get("General.DimV"); + int dim=dimx+dimv; + //lmax: + int refineX=root.get("Case.NRefinementsX"); + int refineV=root.get("Case.NRefinementsV"); + int subX=root.get("Case.NSubdivisionsX.X"); + int subV=root.get("Case.NSubdivisionsV.X"); + LevelVector lma; + + //zur Basis 2 hoch beziehen! + for(int i=0; i("General.PartitionX"); + int partY=root.get("General.PartitionV"); + LevelVector p_{partX,partY}; + + //boundary + + LevelVector bound; + for(int i=0;i("ct.dim",2); + int dimx=root.get("ct.dimx",dim/2); + int dimv=root.get("ct.dimv",dim/2); + + //degree is 1 per default + int degx=root.get("ct.degreex",1); + int degv=root.get("ct.degreev",1); + + // case is per default hyperrectangle and periodic is per default + //nrefinments is set to 0 and the distribution is controlled via subdivisions + + //lmax: + LevelVector lmax(dimx+dimv),p(dimx+dimv); + lmax=l; + root.get("ct.p") >> p; + + json_general.put("DimX", dimx); + json_general.put("DimV", dimv); + json_general.put("DegreeX", degx); + json_general.put("DegreeV", degv); + json_general.put("PartitionX", p[0]); + json_general.put("PartitionV", p[1]); + json_general.put("Case","hyperrectangle"); + json_root.add_child("General", json_general); + + json_case.put("NRefinementsX",0); + json_case.put("NRefinementsV",0); + json_case.put("PeriodicX",true); + json_case.put("PeriodicV",true); + jsubX.put("X",pow(2,lmax[0])); + jsubX.put("Y",pow(2,lmax[0])); + jsubX.put("Z",pow(2,lmax[0])); + jsubV.put("X",pow(2,lmax[1])); + jsubV.put("Y",pow(2,lmax[1])); + jsubV.put("Z",pow(2,lmax[1])); + json_case.add_child("NSubdivisionsX",jsubX); + json_case.add_child("NSubdivisionsV",jsubV); + json_root.add_child("Case", json_case); + + json_SpatialDiscretization.put("TriangulationType","FullyDistributed"); + json_SpatialDiscretization.put("MappingX",1); + json_SpatialDiscretization.put("MappingV",1); + json_root.add_child("SpatialDiscretization",json_SpatialDiscretization); + + json_TemporalDiscretization.put("FinalTime",2); + json_TemporalDiscretization.put("CFLNumber",0.1); + json_root.add_child("TemporalDiscretization",json_TemporalDiscretization); + + jsout.put("Tick",0.1); + json_postprocessing.add_child("StandardOutput",jsout); + jVTK.put("Enabled",true); + json_postprocessing.add_child("VTK",jVTK); + + json_root.add_child("Postprocessing", json_postprocessing); + pt::write_json(newname,json_root); + + + } + catch(const pt::ini_parser::ini_parser_error& error){ + std::cout<< "Not a valid File"; + } + catch(...){ + std::cout << "Something went wrong"; + } + } + + void Converter::toJSONForDealII(std::string _fileName, std::string newname,LevelVector l, int output_prefix){ + namespace pt = boost::property_tree; + + // Create a root + pt::ptree root; + pt::ptree json_root, json_general, json_case, json_SpatialDiscretization, json_TemporalDiscretization, json_postprocessing; + pt::ptree jsubX, jsubV,jsout, jVTK; + + // Load the ini file in this ptree + try{ + pt::read_ini(_fileName, root); + std::cout << "Name "<<_fileName; + int dim=root.get("ct.dim",2); + + //degree is 1 per default + int deg=root.get("ct.degree",1); + + + double dt=root.get("application.dt",1); + std::cout << "ct.dt="<("ct.nsteps",1); + std::string isDG=root.get("ct.FE","FE_Q"); + + // case is per default hyperrectangle and periodic is per default + //nrefinments is set to 0 and the distribution is controlled via subdivisions + + //lmax: + LevelVector lmax(dim),p(dim); + lmax=l; + root.get("ct.p") >> p; + + json_general.put("Dim", dim); + json_general.put("Degree", deg); + json_general.put("PartitionX", p[std::min(std::max(dim-1, 0),0)]); + json_general.put("PartitionY", p[std::min(std::max(dim-1, 1),1)]); + json_general.put("PartitionZ", p[std::min(dim-1, 2)]); + json_general.put("Case","hyperrectangle"); + json_root.add_child("General", json_general); + + json_case.put("NRefinements",0); + json_case.put("Periodic",true); + jsubX.put("X",pow(2,lmax[std::min(std::max(dim-1, 0),0)])); + jsubX.put("Y",pow(2,lmax[std::min(std::max(dim-1, 1),1)])); + //watch out here + + jsubX.put("Z",pow(2,lmax[std::min(dim-1, 2)])); + json_case.add_child("NSubdivisions",jsubX); + json_root.add_child("Case", json_case); + + json_SpatialDiscretization.put("TriangulationType","FullyDistributed"); + json_SpatialDiscretization.put("Mapping",1); + json_SpatialDiscretization.put("FE",isDG); + json_root.add_child("SpatialDiscretization",json_SpatialDiscretization); + + json_TemporalDiscretization.put("FinalTime",1); + json_TemporalDiscretization.put("CFLNumber",0.15); + json_root.add_child("TemporalDiscretization",json_TemporalDiscretization); + + jsout.put("Tick",dt); + json_postprocessing.add_child("StandardOutput",jsout); + jVTK.put("Enabled",false); + jVTK.put("Prefix","solution/solution_"+std::to_string(output_prefix)); + json_postprocessing.add_child("VTK",jVTK); + + json_root.add_child("Postprocessing", json_postprocessing); + pt::write_json(newname,json_root); + + + } + catch(const pt::ini_parser::ini_parser_error& error){ + std::cout<< "Not a valid File"; + } + catch(...){ + std::cout << "Something went wrong"; + } + } + diff --git a/distributedcombigrid/examples/dealii_example/DataConverter.hpp b/distributedcombigrid/examples/dealii_example/DataConverter.hpp new file mode 100644 index 000000000..40d4e5e90 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/DataConverter.hpp @@ -0,0 +1,35 @@ +/* +this function reads in the data from a json file formated like that one from hyperdeal and returns the data +we need for a Combi + +*/ + +#ifndef DATACONVERTER_H +#define DATACONVERTER_H + +#include +#include +#include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" + +#include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" +#include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" + +#include "sgpp/distributedcombigrid/utils/Types.hpp" + +using namespace combigrid; + +class Converter{ + public: + + Converter(); + //reads the data from a json file and stores it in param file + + void toParam(std::string, std::string); + + void toJSONForDealII(std::string, std::string, LevelVector, int); + + // + void toJSON(std::string, std::string, LevelVector ); + +}; +#endif \ No newline at end of file diff --git a/distributedcombigrid/examples/dealii_example/L2_errors.dat b/distributedcombigrid/examples/dealii_example/L2_errors.dat new file mode 100644 index 000000000..88030b325 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/L2_errors.dat @@ -0,0 +1,230 @@ +Q DO_COMBINE=true now ncombi=10, p=1 1 1 +Q_true_10_1_2= 0.0182625 +Q_true_10_2_2= 0.0186066 +Q_true_10_1_3= 0.00349074 +Q_true_10_2_3= 0.00307517 +Q_true_10_3_3= 0.00261493 +Q_true_10_1_4= 0.000724518 +Q_true_10_2_4= 0.000433859 +Q_true_10_3_4= 0.000301565 +Q_true_10_4_4= 0.000281197 +Q_true_10_1_5= 0.000129533 +Q_true_10_2_5= 5.6649e-05 +Q_true_10_3_5= 3.20669e-05 +Q_true_10_5_5= 2.73028e-05 +Q_true_10_1_6= 2.08885e-05 +Q_true_10_2_6= 6.92929e-06 +Q_true_10_3_6= 3.27132e-06 +Q_true_10_6_6= 2.5274e-06 +Q_true_10_1_7= 3.1e-06 +Q_true_10_2_7= 8.07725e-07 +Q_true_10_3_7= 3.26016e-07 +Q_true_10_7_7= 2.28586e-07 +Q_true_10_1_8= 4.27798e-07 +Q_true_10_2_8= 9.06066e-08 +Q_true_10_3_8= 3.20721e-08 +DGQ DO_COMBINE=true now ncombi=10, p=1 1 1 +DGQ_true_10_1_2=0.029099 +DGQ_true_10_2_2=0.003973 +DGQ_true_10_1_3=0.0110509 +DGQ_true_10_2_3=0.0012934 +DGQ_true_10_3_3=0.000449145 +DGQ_true_10_1_4=0.00360293 +DGQ_true_10_2_4=0.000260622 +DGQ_true_10_3_4=5.08301e-05 +DGQ_true_10_4_4=4.11391e-05 +DGQ_true_10_1_5=0.000603763 +DGQ_true_10_2_5=0.00012289 +DGQ_true_10_3_5=9.06477e-06 +DGQ_true_10_5_5=3.62193e-06 +DGQ_true_10_1_6=0.000397152 +DGQ_true_10_2_6=5.34969e-05 +DGQ_true_10_3_6=4.59671e-06 +DGQ_true_10_6_6=3.18862e-07 +DGQ_true_10_1_7=0.000175982 +DGQ_true_10_2_7=2.3539e-05 +DGQ_true_10_3_7=1.6033e-06 +DGQ_true_10_7_7=2.81292e-08 +DGQ_false_10_1_2=0.00678428 +DGQ_false_10_2_2=0.003973 +DGQ_false_10_1_3=0.00190135 +DGQ_false_10_2_3=0.000764347 +DGQ_false_10_3_3=0.000449145 +DGQ_false_10_1_4=0.00042834 +DGQ_false_10_2_4=0.000127214 +DGQ_false_10_3_4=4.78481e-05 +DGQ_false_10_4_4=4.11391e-05 +DGQ_false_10_1_5=9.30853e-05 +DGQ_false_10_2_5=2.53903e-05 +DGQ_false_10_3_5=6.02243e-06 +DGQ_false_10_5_5=3.62193e-06 +DGQ_false_10_1_6=2.27648e-05 +DGQ_false_10_2_6=6.80157e-06 +DGQ_false_10_3_6=1.22878e-06 +DGQ_false_10_6_6=3.18862e-07 +DGQ_false_10_1_7=6.75442e-06 +DGQ_false_10_2_7=2.0602e-06 +DGQ_false_10_3_7=3.17836e-07 +DGQ_false_10_7_7=2.81292e-08 +Q_false_10_1_2=0.0181183 +Q_false_10_2_2=0.0186066 +Q_false_10_1_3=0.00341677 +Q_false_10_3_3=0.00261493 +Q_false_10_1_4=0.000848653 +Q_false_10_4_4=0.000281197 +Q_false_10_1_5=0.000161517 +Q_false_10_5_5=2.73028e-05 +Q_false_10_1_6=2.79669e-05 +Q_false_10_6_6=2.5274e-06 +Q_false_10_1_7=4.49761e-06 +Q_false_10_7_7=2.28586e-07 +Q_false_10_1_8= 9.97798e-07 +DGQ_false_10_7_7=2.81292e-08 +DGQ_true_100_1_2=2.51834e+22 +DGQ_true_100_2_2=0.0039731 +DGQ_true_100_1_3=9.14013e+21 +DGQ_true_100_2_3=7.17986e+18 +DGQ_true_100_3_3=0.000449147 +DGQ_true_100_1_4=1.40378e+21 +DGQ_true_100_2_4=1.27067e+18 +DGQ_true_100_3_4=1.77191e+12 +DGQ_true_100_4_4=4.11392e-05 +DGQ_true_100_1_5=7.24251e+19 +DGQ_true_100_2_5=7.40593e+16 +DGQ_true_100_3_5=7.64789e+11 +DGQ_true_100_5_5=3.62193e-06 +DGQ_true_100_1_6=7.38623e+25 +DGQ_true_100_2_6=2.30757e+23 +DGQ_true_100_3_6=4.04923e+17 +DGQ_true_100_6_6=3.18862e-07 +DGQ_true_100_1_7=3.45959e+32 +DGQ_true_100_2_7=5.72405e+29 +DGQ_true_100_3_7=1.76141e+24 +DGQ_false_100_1_2=0.00678428 +DGQ_false_100_2_2=0.0039731 +DGQ_false_100_1_3=0.00190134 +DGQ_false_100_2_3=0.000764318 +DGQ_false_100_3_3=0.000449147 +DGQ_false_100_1_4=0.000428332 +DGQ_false_100_2_4=0.000127214 +DGQ_false_100_3_4=4.78479e-05 +DGQ_false_100_4_4=4.11392e-05 +DGQ_false_100_1_5=9.30881e-05 +DGQ_false_100_2_5=2.53904e-05 +DGQ_false_100_3_5=6.02238e-06 +DGQ_false_100_5_5=3.62193e-06 +DGQ_false_100_1_6=2.27647e-05 +DGQ_false_100_2_6=6.80157e-06 +DGQ_false_100_3_6=1.22879e-06 +DGQ_false_100_6_6=3.18862e-07 +DGQ_false_100_1_7=6.75444e-06 +DGQ_false_100_2_7=2.0602e-06 +DGQ_false_100_3_7=3.17836e-07 +DGQ_false_10_1_2= 8.29777e-05 +DGQ_false_10_2_2= 6.17032e-05 +DGQ_false_10_1_3= 4.53452e-05 +DGQ_false_10_2_3= 2.52722e-05 +DGQ_false_10_1_2= 8.29777e-05 +DGQ_false_10_2_2= 6.17032e-05 +DGQ_false_10_1_3= 4.53452e-05 +DGQ_false_10_2_3= 2.52722e-05 +DGQ_false_10_3_3= 2.04198e-05 +DGQ_false_10_1_4= 2.43739e-05 +DGQ_false_10_2_4= 1.24166e-05 +DGQ_false_10_3_4= 1.02821e-05 +DGQ_false_10_4_4= 1.00706e-05 +DGQ_false_10_1_5= 1.37989e-05 +DGQ_false_10_2_5= 7.371e-06 +DGQ_false_10_3_5= 6.28536e-06 +DGQ_false_10_5_5= 6.13759e-06 +DGQ_false_10_1_6= 8.67667e-06 +DGQ_false_10_2_6= 4.33744e-06 +DGQ_false_10_3_6= 3.39258e-06 +DGQ_false_100_7_7= 2.81292e-08 +DGQ_false_10_1_2= 8.29777e-05 +DGQ_false_10_2_2= 6.17032e-05 +DGQ_false_10_1_3= 4.53452e-05 +DGQ_false_10_2_3= 2.52722e-05 +DGQ_false_10_3_3= 2.04198e-05 +DGQ_false_10_1_4= 2.43739e-05 +DGQ_false_10_2_4= 1.24166e-05 +DGQ_false_10_3_4= 1.02821e-05 +DGQ_false_10_4_4= 1.00706e-05 +DGQ_false_10_1_5= 1.37989e-05 +DGQ_false_10_2_5= 7.371e-06 +DGQ_false_10_3_5= 6.28536e-06 +DGQ_false_10_5_5= 6.13759e-06 +DGQ_false_10_1_6= 8.67667e-06 +DGQ_false_10_2_6= 4.33744e-06 +DGQ_false_10_3_6= 3.39258e-06 +Q_false_100_1_2= 0.0181183 +Q_false_100_2_2= 0.0186066 +Q_false_100_1_2= 0.0181183 +Q_false_100_1_2= 0.0181183 +Q_false_100_2_2= 0.0186066 +Q_false_100_1_3= 0.00341677 +Q_false_100_3_3= 0.00261492 +Q_false_100_1_4= 0.000848649 +Q_false_100_4_4= 0.000281197 +Q_false_100_1_5= 0.000161516 +Q_false_100_5_5= 2.73028e-05 +Q_false_100_1_6= 2.79673e-05 +Q_false_100_6_6= 2.5274e-06 +Q_false_100_1_7= 4.49763e-06 +Q_false_100_7_7= 2.28586e-07 +Q_true_100_1_2= 0.0182886 +Q_true_100_2_2= 0.0186066 +Q_true_100_1_3= 0.00345472 +Q_true_100_3_3= 0.00261492 +Q_true_100_1_4= 0.000715257 +Q_true_100_4_4= 0.000281197 +Q_true_100_1_5= 0.00012817 +Q_true_100_5_5= 2.73028e-05 +Q_true_100_1_6= 2.05305e-05 +Q_true_100_6_6= 2.5274e-06 +Q_true_100_1_7= 3.04666e-06 +Q_true_100_7_7= 2.28586e-07 +Q_false_10_1_2= 0.0181183 +Q_false_10_2_2= 0.0186066 +Q_false_10_1_3= 0.00341677 +Q_false_10_3_3= 0.00261493 +Q_false_10_1_4= 0.000848653 +Q_false_10_4_4= 0.000281197 +Q_false_10_1_5= 0.000161517 +Q_false_10_5_5= 2.73028e-05 +Q_false_10_1_6= 2.79669e-05 +Q_false_10_6_6= 2.5274e-06 +Q_false_10_1_7= 4.49761e-06 +Q_false_10_7_7= 2.28586e-07 +Q_true_10_1_2= 0.0182625 +Q_true_10_2_2= 0.0186066 +Q_true_10_1_3= 0.00349074 +Q_true_10_3_3= 0.00261493 +Q_true_10_1_4= 0.000724518 +Q_true_10_4_4= 0.000281197 +Q_true_10_1_5= 0.000129533 +Q_true_10_5_5= 2.73028e-05 +Q_true_10_1_6= 2.08885e-05 +Q_true_10_6_6= 2.5274e-06 +Q_true_10_1_7= 3.1e-06 +Q_true_10_7_7= 2.28586e-07 +DGQ_true_10_1_2= 0.00159281 +DGQ_true_10_2_2= 6.17277e-05 +DGQ_true_10_1_3= 9.01725e-05 +DGQ_true_10_2_3= 2.98962e-05 +DGQ_true_10_3_3= 2.043e-05 +DGQ_true_10_1_4= 1.17003 +DGQ_true_10_2_4= 0.000332773 +DGQ_true_10_3_4= inf +DGQ_true_10_4_4= 1.00713e-05 +DGQ_true_10_1_5= 7.41924e-05 +DGQ_true_10_2_5= 0.000640425 +DGQ_true_10_3_5= 3.21984 +DGQ_true_10_5_5= 6.13761e-06 +DGQ_true_10_1_6= 0.000673894 +DGQ_true_10_2_6= 7.7561e-05 +DGQ_true_10_3_6= 5.56606 +DGQ_true_10_6_6= 3.27577e-06 +DGQ_true_10_1_7= 0.00264169 +DGQ_true_10_2_7= 0.00191686 +DGQ_true_10_3_7= inf diff --git a/distributedcombigrid/examples/dealii_example/Make_copy b/distributedcombigrid/examples/dealii_example/Make_copy new file mode 100644 index 000000000..7a4e635ed --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/Make_copy @@ -0,0 +1,35 @@ +CC=mpicxx +CFLAGS=-std=c++17 -g -march=native -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall -DUNIFORMDECOMPOSITION + +SGPP_DIR=/home/sgsscratch/goehrims/combi +GLPK_DIR=/home/sgsscratch/goehrims/combi/glpk +HYPER_DIR=/home/sgsscratch/goehrims/ +DEBUG_DIR=/home/sgsscratch/goehrims/DEBUG + +DEAL_II_DIR=/home/sgsscratch/goehrims/matrixfree-install +DEAL_II_INC_DIR=/home/sgsscratch/goehrims/matrixfree + +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LD_DEALII=-L$(DEAL_II_DIR)/lib +INC_DEALII=-I$(DEAL_II_DIR)/include +INC_BOOST=-I$(DEAL_II_INC_DIR)/bundled/boost-1.70.0/include +INC_P4EST= -I$(DEBUG_DIR)/include + +INC_HYPERDEAL=-I$(HYPER_DIR) + +LDIR=$(LD_SGPP) $(LD_GLPK) $(LD_DEALII) +INC=$(INC_SGPP) $(INC_GLPK) $(INC_DEALII) $(INC_BOOST) $(INC_HYPERDEAL) $(INC_P4EST) + +LIBS=-lsgppdistributedcombigrid -lboost_serialization -ldeal_II.g + +all: dealii_example + +dealii_example: dealii_example.cpp TaskExample.hpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -o dealii_example dealii_example.cpp $(LIBS) + +clean: + rm -f *.o out/* dealii_example diff --git a/distributedcombigrid/examples/dealii_example/Makefile b/distributedcombigrid/examples/dealii_example/Makefile new file mode 100644 index 000000000..1ee60bf95 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/Makefile @@ -0,0 +1,36 @@ +CC=mpicxx +CFLAGS=-std=c++17 -march=native -g -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall -DUNIFORMDECOMPOSITION + +SGPP_DIR=/home/sgsscratch/goehrims/combi +GLPK_DIR=/home/sgsscratch/goehrims/combi/glpk +HYPER_DIR=/home/sgsscratch/goehrims/ +DEBUG_DIR=/home/sgsscratch/goehrims/DEBUG + +DEAL_II_DIR=/home/sgsscratch/goehrims/matrixfree-install +DEAL_II_INC_DIR=/home/sgsscratch/goehrims/matrixfree + + +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LD_DEALII=-L$(DEAL_II_DIR)/lib +INC_DEALII=-I$(DEAL_II_DIR)/include +INC_BOOST=-I$(DEAL_II_INC_DIR)/bundled/boost-1.70.0/include +INC_P4EST= -I$(DEBUG_DIR)/include + +INC_HYPERDEAL=-I$(HYPER_DIR) + +LDIR=$(LD_SGPP) $(LD_GLPK) $(LD_DEALII) +INC=$(INC_SGPP) $(INC_GLPK) $(INC_DEALII) $(INC_BOOST) $(INC_HYPERDEAL) $(INC_P4EST) + +LIBS=-lsgppdistributedcombigrid -lboost_serialization -ldeal_II + +all: dealii_example + +dealii_example: dealii_example.cpp TaskExample.hpp DataConverter.cpp parameter_handler.cc TaskEnsemble.hpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -o dealii_example dealii_example.cpp parameter_handler.cc $(LIBS) + +clean: + rm -f *.o out/* dealii_example diff --git a/distributedcombigrid/examples/dealii_example/Makefile.template b/distributedcombigrid/examples/dealii_example/Makefile.template new file mode 100644 index 000000000..c4e828083 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/Makefile.template @@ -0,0 +1,36 @@ +CC=$(CC) +CFLAGS=-std=c++17 -march=native -g -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall -DUNIFORMDECOMPOSITION + +SGPP_DIR=$(SGPP) +GLPK_DIR=$(GLPK) +HYPER_DIR=/home/sgsscratch/goehrims/ +DEBUG_DIR=/home/sgsscratch/goehrims/DEBUG + +DEAL_II_DIR=/home/sgsscratch/goehrims/matrixfree-install +DEAL_II_INC_DIR=/home/sgsscratch/goehrims/matrixfree + + +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LD_DEALII=-L$(DEAL_II_DIR)/lib +INC_DEALII=-I$(DEAL_II_DIR)/include +INC_BOOST=-I$(DEAL_II_INC_DIR)/bundled/boost-1.70.0/include +INC_P4EST= -I$(DEBUG_DIR)/include + +INC_HYPERDEAL=-I$(HYPER_DIR) + +LDIR=$(LD_SGPP) $(LD_GLPK) $(LD_DEALII) +INC=$(INC_SGPP) $(INC_GLPK) $(INC_DEALII) $(INC_BOOST) $(INC_HYPERDEAL) $(INC_P4EST) + +LIBS=-lsgppdistributedcombigrid -lboost_serialization -ldeal_II + +all: dealii_example + +dealii_example: dealii_example.cpp TaskExample.hpp DataConverter.cpp parameter_handler.cc TaskEnsemble.hpp + $(CC) $(CFLAGS) $(LDIR) $(INC) -o dealii_example dealii_example.cpp parameter_handler.cc $(LIBS) + +clean: + rm -f *.o out/* dealii_example diff --git a/distributedcombigrid/examples/dealii_example/TaskEnsemble.hpp b/distributedcombigrid/examples/dealii_example/TaskEnsemble.hpp new file mode 100644 index 000000000..1262772a3 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/TaskEnsemble.hpp @@ -0,0 +1,508 @@ +/* + * TaskExample.hpp + * + * Created on: Sep 25, 2015 + * Author: heenemo + */ + +#ifndef TASKENSEMPLE_HPP_ +#define TASKENSEMPLE_HPP_ + +#include +#include +#include +#include +#include + +#include +#include + +#include "sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp" +#include "sgpp/distributedcombigrid/task/Task.hpp" +//#include + +namespace combigrid { + +class TaskEnsemble : public Task { + public: + /* if the constructor of the base task class is not sufficient we can provide an + * own implementation. here, we add dt, nsteps, and p as a new parameters. + */ + TaskEnsemble(DimType dim, LevelVector& l, std::vector& boundary, real coeff, + LoadModel* loadModel, std::string filename, real dt, bool makeExactSolution, + IndexVector p = IndexVector(0), + FaultCriterion* faultCrit = (new StaticFaults({0, IndexVector(0), IndexVector(0)}))) + : Task(dim, l, boundary, coeff, loadModel, faultCrit) { + dt_ = (dt), p_ = (p), make_exact_ = (makeExactSolution), initialized_ = (false), + stepsTotal_ = (0), dfgEnsemble_ = (nullptr), _filename = (filename); + } + + void init(CommunicatorType lcomm, + std::vector decomposition = std::vector()) { + assert(!initialized_); + assert(dfgEnsemble_ == nullptr); + + int lrank; + MPI_Comm_rank(lcomm, &lrank); + + /* create distributed full grid. we try to find a balanced ratio between + * the number of grid points and the number of processes per dimension + * by this very simple algorithm. to keep things simple we require powers + * of two for the number of processes here. */ + int np; + MPI_Comm_size(lcomm, &np); + + // check if power of two + if (!((np > 0) && ((np & (~np + 1)) == np))) + assert(false && "number of processes not power of two"); + + DimType dim = this->getDim(); + IndexVector p(dim, 1); + const LevelVector& l = this->getLevelVector(); + + if (p_.size() == 0) { + // compute domain decomposition + IndexType prod_p(1); + + while (prod_p != static_cast(np)) { + DimType dimMaxRatio = 0; + real maxRatio = 0.0; + + for (DimType k = 0; k < dim; ++k) { + real ratio = std::pow(2.0, l[k]) / p[k]; + + if (ratio > maxRatio) { + maxRatio = ratio; + dimMaxRatio = k; + } + } + + p[dimMaxRatio] *= 2; + prod_p = 1; + + for (DimType k = 0; k < dim; ++k) prod_p *= p[k]; + } + } else { + p = p_; + } + + // create local subgrid on each process + dfgEnsemble_ = new DFGEnsemble(dim, l, lcomm, this->getBoundary(), p); + + // for visualization of grids in Paraview + Point offset; + for (unsigned int i = 0; i < dim; i++) offset[i] = l[i] * 1.1; + + // if(!make_exact_){ + this->problem = std::make_shared(lcomm, table, offset); + this->problem->reinit(_filename); + + std::vector> coords_dealii = problem->get_result(); + dealii_size = coords_dealii.size(); + + // array containing the coordinates of all grids. + std::vector>> element_coords( + dfgEnsemble_->getNumFullGrids()); + + // loop over each fullgrid to set coordinates of each point in element_coords. + // furthermore the DisCoTec grids are initialized with NaN + for (unsigned int i = 0; i < dfgEnsemble_->getNumFullGrids(); ++i) { + auto& dfg = dfgEnsemble_->getDFG(i); + std::vector& elements = dfg.getElementVector(); + + element_coords[i].resize(elements.size()); + /* loop over local subgrids and set initial values */ + for (size_t j = 0; j < elements.size(); ++j) { + IndexType globalLinearIndex = dfg.getGlobalLinearIndex(j); + std::vector globalCoords(dim); + dfg.getCoordsGlobal(globalLinearIndex, globalCoords); + for (size_t l = 0; l < dim; ++l) { + element_coords[i][j][l] = globalCoords[l]; + } + + elements[j] = NAN; // TaskEnsemble::myfunction(globalCoords, 0.0); + } + } + + // corners is an array that contains exactly the one corner point at index i that is set by + // deal.ii at Degree of freedom i. + // So you know which direction this degree of freedom i is pointing + corners.resize(dfgEnsemble_->getNumFullGrids()); + + int partitions = p[0] * p[1]; + + // set grid sizes + int Nx = std::pow(2, l[0]) + 1; + int Ny = std::pow(2, l[1]) + 1; + int Nz = 1; + if (dim == 3) { + Nz = std::pow(2, l[2]) + 1; + partitions *= p[2]; + } + + assert(partitions == 1); // partitioning isnt correct when in parallel + +#pragma region Index_mapping_init + // indexmapping[i], initialized with -1 contains at index j (=index_mapping[i][j]) the index of + // the deal.ii point that corresponds to the DisCoTec point at index j + index_mapping.resize(dfgEnsemble_->getNumFullGrids()); + + // loop over each degree of freedom and init index_mapping with -1 such that we later can + // control which index is not set yet. + for (unsigned int dof = 0; dof < dfgEnsemble_->getNumFullGrids(); ++dof) { + index_mapping[dof].resize(element_coords[dof].size()); + for (unsigned int j = 0; j < element_coords[dof].size(); ++j) { + index_mapping[dof][j] = -1; + } + } + + // this may cause memory problems when working with high discretizations, + index_sub.resize(Nx * Ny * Nz); + int x = 0, y = 0, z = 0, linearized_index = 0; + + // index mapping is done via hashing: + // each point is mapped to its linearized index in the grid -> O(n) + for (unsigned int el_index = 0; el_index < (element_coords[0].size()); el_index++) { + x = element_coords[0][el_index][0] * (Nx - 1); + y = element_coords[0][el_index][1] * (Ny - 1); + + linearized_index = y * (Nx) + x; + if (dim == 3) { + z = element_coords[0][el_index][2] * (Nz - 1); + linearized_index = x + (Nx)*y + z * (Nx) * (Ny); + } + // remember the index of the point and its linearized index + index_sub[linearized_index] = el_index; + } + // same for the deal.II points ->O(2n) + for (unsigned int x2 = 0; x2 < (coords_dealii.size()); x2++) { + // x,y and z are the indices of the point with respect to its corresponding axis, so it is not + // the deal.ii index + x = std::round(coords_dealii[x2][0] * (Nx - 1)); + y = std::round(coords_dealii[x2][1] * (Ny - 1)); + + // this bool indicates wether this point is on the boundary in z-direction + bool z_corner = true; + if (dim == 3) { + z = coords_dealii[x2][2] * (Nz - 1); + if (!(z == (Nz - 1) || z == 0)) z_corner = false; + } + + // check here whether cornerpoint, if so, save this point in corners + if ((x == (Nx - 1) || x == 0) && (y == (Ny - 1) || y == 0) && z_corner) { + corners[coords_dealii[x2][dim + 1]].resize(dim); + for (unsigned int d = 0; d < dim; ++d) + corners[coords_dealii[x2][dim + 1]][d] = coords_dealii[x2][d]; + } + // claculate the linearized index + linearized_index = (Nx)*y + x + z * (Nx) * (Ny); + + // If we already had an DisCoTec point with this linearized index we know these points need to + // be mapped + if (index_sub[linearized_index] != -1) { + // coords_dealii[x2][dim + 1] decodes the degree of freedom. + // then in this DOF save at the index of the DisCoTec point the index of the deal.ii point. + // can be understood as elements[index_sub[linearized_index]]=coords_dealii[x2] + index_mapping[coords_dealii[x2][dim + 1]][index_sub[linearized_index]] = x2; + } + } +#pragma endregion Index_mapping_init + +#pragma region Index_mapping_boundary + // check the index_mapping for Completeness, beacuse the boundary values, namely corners, edges + // and (in 3d) boundary areas need special treatment + for (unsigned int point_index = 0; point_index < element_coords[0].size(); ++point_index) { + for (unsigned int dof = 0; dof < dfgEnsemble_->getNumFullGrids(); ++dof) { + if (index_mapping[dof][point_index] == -1) { + // x,y and z are the indices of the point with respect to its corresponding axis, so it is + // not the discotec index + //those values are used to detect the type of boundary point: corner, edge or boundary area + x = std::round(element_coords[dof][point_index][0] * (Nx - 1)); + y = std::round(element_coords[dof][point_index][1] * (Ny - 1)); + bool z_corner = true; + if (dim == 3) { + z = element_coords[dof][point_index][2] * (Nz - 1); + if (!(z == (Nz - 1) || z == 0)) z_corner = false; + } + +#pragma region Corner + if ((x == (Nx - 1) || x == 0) && (y == (Ny - 1) || y == 0) && z_corner) { + // this point is a corner + // on one DisCoTec grid all corner points have the same value as it displays 1 Degree of + // freedom and we have periodic boundary values + + //calculate the corner that is stored in this degree of freedom + x = std::round(corners[dof][0] * (Nx - 1)); + y = std::round(corners[dof][1] * (Ny - 1)); + if (dim == 3) z = corners[dof][2] * (Nz - 1); + + //this is the linearized index of the corner point. + linearized_index = (Nx)*y + x + z * (Nx) * (Ny); + + //this point needs the same value as the corner point and the corner points DisCoTec index ist stored in index_sub[linearized_index] + index_mapping[dof][point_index] = index_mapping[dof][index_sub[linearized_index]]; + } +#pragma endregion Corner +#pragma region Edge + else { + //this is a edge + //adding a part of the negated corner gives the point coordinates like in Deal.ii such that we know which dof of a point it is. + double x_moved_point = element_coords[dof][point_index][0] + 1.0 / 100.0 * ((int)(!((bool)corners[dof][0])) - 0.5); + double y_moved_point = element_coords[dof][point_index][1] + 1.0 / 100.0 * ((int)(!((bool)corners[dof][1])) - 0.5); + double z_moved_point=0; + //check whether the x_ coordinate is on the x-axis boundary + if (element_coords[dof][point_index][0] == 0.0 || element_coords[dof][point_index][0] == 1.0) { + if (x_moved_point< 0.0 || x_moved_point > 1.0) { + //the moved point is outside the domain in x direction so copy the value from the negated x coordinate + x_moved_point = ((int)!(element_coords[dof][point_index][0])); + } else { + //x_ is inside the domain so keep this value + x_moved_point = element_coords[dof][point_index][0]; + } + } else { + x_moved_point = element_coords[dof][point_index][0]; + } + + //same for the y coordinate: If y is at y-axis boundary + if (element_coords[dof][point_index][1] == 0.0 || element_coords[dof][point_index][1] == 1.0) { + if (y_moved_point < 0.0 || y_moved_point > 1.0) { + //the moved point is outside the domain in y direction so copy the value from the negated y coordinate + y_moved_point = ((int)!(element_coords[dof][point_index][1])); + } else { + y_moved_point = element_coords[dof][point_index][1]; + } + } else { + y_moved_point = element_coords[dof][point_index][1]; + } + + //the same for the z coordinate if we are three dimensional + if (dim == 3) { + + //move the point in z-direction with a little offset according to the "direction" of the degree of freedom + z_moved_point = element_coords[dof][point_index][2] + 1.0 / 100.0 * ((int)(!((bool)corners[dof][2])) - 0.5); + if (element_coords[dof][point_index][2] == 0 || element_coords[dof][point_index][2] == 1) { + if (z_moved_point < 0 || z_moved_point > 1) { + //the moved point is outside the domain in z direction so copy the value from the negated y coordinate + z_moved_point = (int)!(element_coords[dof][point_index][2]); + } else { + z_moved_point = element_coords[dof][point_index][2]; + } + } else { + z_moved_point = element_coords[dof][point_index][2]; + } + } + linearized_index = (Nx)*y_moved_point * (Ny - 1) + x_moved_point * (Nx - 1) + z_moved_point * (Nz - 1) * (Nx) * (Ny); + + index_mapping[dof][point_index] = index_mapping[dof][index_sub[linearized_index]]; + } +#pragma endregion Edge + } + } + } +#pragma endregion Index_mapping_boundary + + initialized_ = true; + } + + /* this is were the application code kicks in and all the magic happens. + * do whatever you have to do, but make sure that your application uses + * only lcomm or a subset of it as communicator. + * important: don't forget to set the isFinished flag at the end of the computation. + */ + void run(CommunicatorType lcomm) { + assert(initialized_); + table.start("time->fullgrid"); + if (!make_exact_) { + std::vector> old_result(dealii_size); + if (stepsTotal_ == 1) { + auto& dfg = dfgEnsemble_->getDFG(0); + std::vector& elements = dfg.getElementVector(); + int counter = 0; + for (size_t j = 0; j < elements.size(); ++j) { + IndexType globalLinearIndex = dfg.getGlobalLinearIndex(j); + std::vector globalCoords(dim); + dfg.getCoordsGlobal(globalLinearIndex, globalCoords); + std::cout << elements[j] << " "; + counter++; + if (counter == 5) { + std::cout << std::endl; + counter = 0; + } + } + } + if (stepsTotal_ > 0 && do_combine) { + // iterates over all dfgs of the ensemble + for (unsigned int i = 0; i < dfgEnsemble_->getNumFullGrids(); i++) { + auto& dfg = dfgEnsemble_->getDFG(i); + std::vector& elements = dfg.getElementVector(); + + // iterate here over all points of this grid + for (unsigned int l = 0; l < index_mapping[i].size(); l++) { + old_result[index_mapping[i][l]][Problem::dim_] = elements[l]; + } + } + problem->set_result(old_result); + } + // Stats::startEvent("Task "+std::to_string(this->getID())); + problem->reinit_time_integration(stepsTotal_ * dt_, (stepsTotal_ + 1) * dt_); + + // process problem + problem->solve(); + // Stats::stopEvent("Task "+std::to_string(this->getID())); + + // process problem + problem->solve(); + // Stats::stopEvent("Task "+std::to_string(this->getID())); + + std::vector> result = problem->get_result(); + // std::cout << "result " << result.size() << " " << result[0].size() << std::endl; + // for (auto& r : result) { + // for (auto& s : r) { + // std::cout << s << " "; + // } + // std::cout << "," << std::endl; + // } + // std::cout << std::endl; + + // iterate over all dfgs + for (unsigned int i_dash = 0; i_dash < dfgEnsemble_->getNumFullGrids(); i_dash++) { + auto& dfg = dfgEnsemble_->getDFG(i_dash); + auto i = powerOfTwo[Problem::dim_] - i_dash - 1; + std::vector& elements = dfg.getElementVector(); + + // iterate over the elements of this dfg + for (unsigned int l = 0; l < index_mapping[i].size(); l++) { + elements[l] = result[index_mapping[i][l]][Problem::dim_]; + } + } + + } else { + std::vector> coords_dealii = problem->get_result(); + // iterate over all points here and compute the value here. + for (unsigned int i = 0; i < coords_dealii.size(); ++i) { + std::array coord; + for (int dim = 0; dim < Problem::dim_; ++dim) { + coord[dim] = coords_dealii[i][dim]; + } + coords_dealii[i][Problem::dim_] = exactSolution(coord, (stepsTotal_ + 1) * dt_); + } + + for (unsigned int i_dash = 0; i_dash < dfgEnsemble_->getNumFullGrids(); i_dash++) { + auto& dfg = dfgEnsemble_->getDFG(i_dash); + auto i = powerOfTwo[Problem::dim_] - i_dash - 1; + std::vector& elements = dfg.getElementVector(); + + // iterate over the elements of this dfg + for (unsigned int l = 0; l < index_mapping[i].size(); l++) { + elements[l] = coords_dealii[index_mapping[i][l]][Problem::dim_]; + } + } + } + stepsTotal_++; + table.stop("time->fullgrid"); + this->setFinished(true); + // for(unsigned int i = 0; i< dfgEnsemble_->getNumFullGrids(); ++i) { + // std::cout << GridEnumeration::isHigherInDimension(static_cast(0), i) << " " << + // GridEnumeration::isHigherInDimension(static_cast(1), i) << std::endl; std::cout << + // dfgEnsemble_->getDFG(i) << std::endl; + // } + } + + double exactSolution(std::array coordinates, double time) { + double result = 1.0; + Tensor<1, 3> advection; + advection[0] = 1; + advection[1] = 0.15; + advection[2] = -0.05; + for (unsigned int d = 0; d < Problem::dim_; ++d) + result *= std::pow(std::sin((coordinates[d] - time * advection[d]) * dealii::numbers::PI), 2); + + return result; + } + + DistributedFullGrid& getDistributedFullGrid(int n = 0) { + return dfgEnsemble_->getDFG(n); + } + + DFGEnsemble* getDFGEnsemble() const override { return dfgEnsemble_; } + + /* this function evaluates the combination solution on a given full grid. + * here, a full grid representation of your task's solution has to be created + * on the process of lcomm with the rank r. + * typically this would require gathering your (in whatever way) distributed + * solution on one process and then converting it to the full grid representation. + * the DistributedFullGrid class offers a convenient function to do this. + */ + void getFullGrid(FullGrid& fg, RankType r, CommunicatorType lcomm, int n = 0) { + assert(fg.getLevels() == getDistributedFullGrid(n).getLevels()); + + getDistributedFullGrid(n).gatherFullGrid(fg, r); + } + + // return the number of grids; here it is the number of grids in ensemble + size_t getNumGrids() override { return powerOfTwo[dim_]; } + + size_t getDOFs() override { + // std::vector> coordalii = problem->get_result(); + // dealii_size=coordalii.size(); + return dealii_size; + } + + void setZero() {} + + ~TaskEnsemble() { + if (dfgEnsemble_ != nullptr) delete dfgEnsemble_; + } + + protected: + /* if there are local variables that have to be initialized at construction + * you have to do it here. the worker processes will create the task using + * this constructor before overwriting the variables that are set by the + * manager. here we need to set the initialized variable to make sure it is + * set to false. */ + TaskEnsemble() : make_exact_(false), initialized_(false), stepsTotal_(0), dfgEnsemble_(nullptr) {} + + private: + friend class boost::serialization::access; + + // new variables that are set by manager. need to be added to serialize + real dt_; + size_t dealii_size = 0; + std::vector> index_mapping; + std::vector index_sub; + std::vector> corners; + std::vector> index_mapping2; + bool make_exact_ = false; + IndexVector p_; + std::shared_ptr problem; + // pure local variables that exist only on the worker processes + bool initialized_; + size_t stepsTotal_; + // DistributedFullGrid* dfg_; + DFGEnsemble* dfgEnsemble_; + std::string _filename; + /** + * The serialize function has to be extended by the new member variables. + * However this concerns only member variables that need to be exchanged + * between manager and workers. We do not need to add "local" member variables + * that are only needed on either manager or worker processes. + * For serialization of the parent class members, the class must be + * registered with the BOOST_CLASS_EXPORT macro. + */ + template + void serialize(Archive& ar, const unsigned int version) { + // handles serialization of base class + ar& boost::serialization::base_object(*this); + + // add our new variables + ar& dt_; + + ar& p_; + ar& _filename; + ar& make_exact_; + } +}; + +} // namespace combigrid + +#endif /* TASKEXAMPLE_HPP_ */ diff --git a/distributedcombigrid/examples/dealii_example/TaskExample.hpp b/distributedcombigrid/examples/dealii_example/TaskExample.hpp new file mode 100644 index 000000000..ac50539fe --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/TaskExample.hpp @@ -0,0 +1,312 @@ +/* + * TaskExample.hpp + * + * Created on: Sep 25, 2015 + * Author: heenemo + */ + +#ifndef TASKEXAMPLE_HPP_ +#define TASKEXAMPLE_HPP_ + +#include "sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp" +#include "sgpp/distributedcombigrid/task/Task.hpp" +#include + +#include +#include +#include +#include +#include + +namespace combigrid { + +class TaskExample : public Task { + public: + /* if the constructor of the base task class is not sufficient we can provide an + * own implementation. here, we add dt, and p as a new parameters. + */ + TaskExample(DimType dim, LevelVector& l, std::vector& boundary, real coeff, + LoadModel* loadModel,std::string filename, real dt, bool makeExactSolution, IndexVector p = IndexVector(0), + FaultCriterion* faultCrit = (new StaticFaults({0, IndexVector(0), IndexVector(0)})) ) + : Task(dim, l, boundary, coeff, loadModel, faultCrit){ + dt_=(dt); + make_exact_=(makeExactSolution); + p_=(p); + initialized_=(false); + stepsTotal_=(0);dfg_=(NULL); + _filename=(filename); + } + + + void init(CommunicatorType lcomm, + std::vector decomposition = std::vector()) { + assert(!initialized_); + assert(dfg_ == NULL); + int lrank; + MPI_Comm_rank(lcomm, &lrank); + + /* create distributed full grid. we try to find a balanced ratio between + * the number of grid points and the number of processes per dimension + * by this very simple algorithm. to keep things simple we require powers + * of two for the number of processes here. */ + int np; + MPI_Comm_size(lcomm, &np); + // check if power of two + if (!((np > 0) && ((np & (~np + 1)) == np))) + assert(false && "number of processes not power of two"); + + DimType dim = this->getDim(); + IndexVector p(dim, 1); + const LevelVector& l = this->getLevelVector(); + + if (p_.size() == 0) { + // compute domain decomposition + IndexType prod_p(1); + + while (prod_p != static_cast(np)) { + DimType dimMaxRatio = 0; + real maxRatio = 0.0; + + for (DimType k = 0; k < dim; ++k) { + real ratio = std::pow(2.0, l[k]) / p[k]; + + if (ratio > maxRatio) { + maxRatio = ratio; + dimMaxRatio = k; + } + } + + p[dimMaxRatio] *= 2; + prod_p = 1; + + for (DimType k = 0; k < dim; ++k) prod_p *= p[k]; + } + } else { + p = p_; + } + + if (lrank == 0) { + std::cout << "init task " << this->getID() << " with l = " << this->getLevelVector() + << " and p = " << p << std::endl; + } + + // create local subgrid on each process + dfg_ = new DistributedFullGrid(dim, l, lcomm, this->getBoundary(), p); + + /* loop over local subgrid and set initial values */ + Point offset; + for(unsigned int i=0;iproblem = std::make_shared(lcomm, table,offset); + this->problem->reinit(_filename); + + std::vector& elements = dfg_->getElementVector(); + std::vector> element_coords(elements.size()); + std::vector> coords_dealii = problem->get_result(); + size_result=coords_dealii.size(); + for (size_t i = 0; i < elements.size(); ++i) { + IndexType globalLinearIndex = dfg_->getGlobalLinearIndex(i); + std::vector globalCoords(dim); + dfg_->getCoordsGlobal(globalLinearIndex, globalCoords); + for(size_t l=0; l index_sub(Nx*Ny*Nz,-1); + + int z=0; + int x=0,y=0,linearized_index=0; + //index mapping is done via hashing: + //each point is mapped to its linearized index in the grid -> O(n) + + for(unsigned int el_index=0;el_index<(element_coords.size());el_index++){ + + x=element_coords[el_index][0]*(Nx-1); + y=element_coords[el_index][1]*(Ny-1); + if(dim==2){ + linearized_index=y*(Nx)+x; + } + else if(dim==3){ + z=element_coords[el_index][2]*(Nz-1); + linearized_index=x+(Nx)*y+z*(Nx)*(Ny); + } + + index_sub[linearized_index]=el_index; + } + + //same for the deal.II points ->O(2n) + for(unsigned int x2=0; x2<(coords_dealii.size());x2++){ + x=std::round(coords_dealii[x2][0]*(Nx-1)); + y=std::round(coords_dealii[x2][1]*(Ny-1)); + if(dim==3) + z=std::round(coords_dealii[x2][2]*(Nz-1)); + linearized_index=(Nx)*y+x+z*(Nx)*(Ny); + // here i get the element that has the same linearized index + + if(index_sub[linearized_index]!=-1) + index_mapping[index_sub[linearized_index]]=x2; + } + } + initialized_ = true; + } + + /* this is were the application code kicks in and all the magic happens. + * do whatever you have to do, but make sure that your application uses + * only lcomm or a subset of it as communicator. + * important: don't forget to set the isFinished flag at the end of the computation. + */ + + + void run(CommunicatorType lcomm) { + assert(initialized_); + table.start("time->fullgrid"); + if(!make_exact_){ + + std::vector& elements = dfg_->getElementVector(); + + std::vector> old_result(size_result); + // + Stats::startEvent("PointsToDealii"); + if(stepsTotal_>0 && do_combine) + { + for(unsigned int i = 0; i < index_mapping.size(); i++) + old_result[index_mapping[i]][Problem::dim_]=elements[i]; + + problem->set_result(old_result); + } + Stats::stopEvent("PointsToDealii"); + Stats::startEvent("Task "+std::to_string(this->getID())); + Stats::startEvent("Task "+std::to_string(this->getID())+" Dealii_reinit"); + problem->reinit_time_integration(stepsTotal_*dt_, (stepsTotal_ + 1)*dt_); + Stats::stopEvent("Task "+std::to_string(this->getID())+" Dealii_reinit"); + //process problem + Stats::startEvent("Task "+std::to_string(this->getID())+" Dealii_solve"); + problem->solve(); + Stats::stopEvent("Task "+std::to_string(this->getID())+" Dealii_solve"); + Stats::stopEvent("Task "+std::to_string(this->getID())); + std::vector> result = problem->get_result(); + + for(unsigned int i = 0; i < index_mapping.size(); i++) + elements[i]=result[index_mapping[i]][Problem::dim_]; + + } + else{ + //get the coordinates + + std::vector& elements = dfg_->getElementVector(); + std::vector> element_coords(elements.size()); + for (size_t i = 0; i < elements.size(); ++i) { + IndexType globalLinearIndex = dfg_->getGlobalLinearIndex(i); + std::vector globalCoords(dim); + dfg_->getCoordsGlobal(globalLinearIndex, globalCoords); + for(size_t l=0; lfullgrid"); + + this->setFinished(true); + } + + double exactSolution(std::array coordinates, double time){ + double result=1.0; + Tensor<1, 3> advection; + advection[0]=1; + advection[1]=0.15; + advection[2]=-0.05; + for(unsigned int d = 0; d < Problem::dim_; ++d) + result *= std::pow(std::sin((coordinates[d]-time*advection[d])*dealii::numbers::PI),2); + + return result; + } + /* this function evaluates the combination solution on a given full grid. + * here, a full grid representation of your task's solution has to be created + * on the process of lcomm with the rank r. + * typically this would require gathering your (in whatever way) distributed + * solution on one process and then converting it to the full grid representation. + * the DistributedFullGrid class offers a convenient function to do this. + */ + void getFullGrid(FullGrid& fg, RankType r, CommunicatorType lcomm, int n = 0) { + assert(fg.getLevels() == dfg_->getLevels()); + + dfg_->gatherFullGrid(fg, r); + } + + + DistributedFullGrid& getDistributedFullGrid(int n = 0) { return *dfg_; } + + void setZero() {} + + ~TaskExample() { + if (dfg_ != NULL) delete dfg_; + } + + + protected: + /* if there are local variables that have to be initialized at construction + * you have to do it here. the worker processes will create the task using + * this constructor before overwriting the variables that are set by the + * manager. here we need to set the initialized variable to make sure it is + * set to false. */ + TaskExample() : make_exact_(false),initialized_(false), stepsTotal_(0), dfg_(NULL) {} + + private: + friend class boost::serialization::access; + + // new variables that are set by manager. need to be added to serialize + real dt_; // TODO + + size_t size_result; + std::vector index_mapping; + bool make_exact_=false; + + IndexVector p_; + std::shared_ptr problem; + + // pure local variables that exist only on the worker processes + bool initialized_; + size_t stepsTotal_; + DistributedFullGrid* dfg_; + std::string _filename; + /** + * The serialize function has to be extended by the new member variables. + * However this concerns only member variables that need to be exchanged + * between manager and workers. We do not need to add "local" member variables + * that are only needed on either manager or worker processes. + * For serialization of the parent class members, the class must be + * registered with the BOOST_CLASS_EXPORT macro. + */ + template + void serialize(Archive& ar, const unsigned int version) { + // handles serialization of base class + ar& boost::serialization::base_object(*this); + + // add our new variables + ar& dt_; + + ar& p_; + ar& _filename; + ar& make_exact_; + } +}; + +} // namespace combigrid + +#endif /* TASKEXAMPLE_HPP_ */ diff --git a/distributedcombigrid/examples/dealii_example/car.sh b/distributedcombigrid/examples/dealii_example/car.sh new file mode 100755 index 000000000..64543c001 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/car.sh @@ -0,0 +1,8 @@ +#!/bin/bash +cd ../../../ +./compile.sh +cd distributedcombigrid/examples/dealii_example + +make clean +make +. ./run2.sh \ No newline at end of file diff --git a/distributedcombigrid/examples/dealii_example/ctparam b/distributedcombigrid/examples/dealii_example/ctparam new file mode 100644 index 000000000..24b2d0595 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/ctparam @@ -0,0 +1,15 @@ +[ct] +dim=3 +lmin=4 4 4 +lmax=9 9 9 +leval=7 7 7 + p= 1 1 1 +ncombi=10 +FE=FE_Q + +[application] +dt=0.1 + +[manager] +ngroup = 1 +nprocs = 1 diff --git a/distributedcombigrid/examples/dealii_example/ctparam2 b/distributedcombigrid/examples/dealii_example/ctparam2 new file mode 100644 index 000000000..b6e46c740 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/ctparam2 @@ -0,0 +1,14 @@ +[ct] +dim=2 +lmin=[1 0 ] +lmax=[1 0 ] +leval=[1 0 ] +p=1 1 + +ncombi=10 +[application] +dt=0.001 +steps=100 +[manager] +ngroup=2 +nprocs=1 diff --git a/distributedcombigrid/examples/dealii_example/dealii_example.cpp b/distributedcombigrid/examples/dealii_example/dealii_example.cpp new file mode 100644 index 000000000..e4355d855 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/dealii_example.cpp @@ -0,0 +1,327 @@ +#include +#include +#include +#include +#include +#include +#include + +// compulsory includes for basic functionality +#include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" +#include "sgpp/distributedcombigrid/fault_tolerance/FaultCriterion.hpp" +#include "sgpp/distributedcombigrid/fault_tolerance/StaticFaults.hpp" +#include "sgpp/distributedcombigrid/fault_tolerance/WeibullFaults.hpp" +#include "sgpp/distributedcombigrid/fullgrid/FullGrid.hpp" +#include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" +#include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" +#include "sgpp/distributedcombigrid/manager/ProcessGroupManager.hpp" +#include "sgpp/distributedcombigrid/manager/ProcessGroupWorker.hpp" +#include "sgpp/distributedcombigrid/manager/ProcessManager.hpp" +#include "sgpp/distributedcombigrid/task/Task.hpp" +#include "sgpp/distributedcombigrid/utils/Types.hpp" + +#include +#include + +//TODO: global variables needed in hyperdeal +typedef double Number; +const unsigned int dim = 3; +const unsigned int degree = 1; /*dummy value*/ +typedef dealii::VectorizedArray VectorizedArrayType; +typedef dealii::LinearAlgebra::distributed::Vector VectorType; + +//hyperdeal includes +#include +#include +#include + +typedef Application Problem; + +hyperdeal::DynamicConvergenceTable table; + +// include user specific task. this is the interface to your application + +bool do_combine=true; + + +#include "TaskExample.hpp" +#include "TaskEnsemble.hpp" + +#include "DataConverter.cpp" +#include "DataConverter.hpp" + +using namespace combigrid; + +// this is necessary for correct function of task serialization +BOOST_CLASS_EXPORT(TaskExample) +BOOST_CLASS_EXPORT(TaskEnsemble) +BOOST_CLASS_EXPORT(StaticFaults) +BOOST_CLASS_EXPORT(WeibullFaults) +BOOST_CLASS_EXPORT(FaultCriterion) + +int main(int argc, char** argv) { + MPI_Init(&argc, &argv); + + /* when using timers (TIMING is defined in Stats), the Stats class must be + * initialized at the beginning of the program. (and finalized in the end) + */ + Stats::initialize(); + Stats::startEvent("overall computation"); + // read in parameter file + boost::property_tree::ptree cfg; + boost::property_tree::ini_parser::read_ini("ctparam", cfg); + + // number of process groups and number of processes per group + size_t ngroup = cfg.get("manager.ngroup"); + size_t nprocs = cfg.get("manager.nprocs"); + + //transportvector stores transport information in case that the problem is advection. only used to compute the exact solution + // from hyper.deal.combi>applications>advection_reference_dealII>cases>hyperreactangle.h which is sin^2 + LevelVector lmin(dim), lmax(dim), leval(dim); + cfg.get("ct.lmin") >> lmin; + cfg.get("ct.lmax") >> lmax; + cfg.get("ct.leval") >> leval; + combigrid::real dt; + size_t ncombi; + ncombi = cfg.get("ct.ncombi"); + dt = cfg.get("application.dt"); + bool makeExactSol=cfg.get("exact.makeExact",false); + IndexVector p(dim); + cfg.get("ct.p") >> p; + if(makeExactSol){ + + dt=dt*ncombi; + ncombi=1; + lmax=leval; + lmin=leval; + } + + do_combine=cfg.get("ct.DO_COMBINE",do_combine); + std::cout<<"Kombinieren:" <init(ngroup, nprocs); + + // this code is only executed by the manager process + WORLD_MANAGER_EXCLUSIVE_SECTION { + /* create an abstraction of the process groups for the manager's view + * a pgroup is identified by the ID in gcomm + */ + ProcessGroupManagerContainer pgroups; + for (size_t i = 0; i < ngroup; ++i) { + int pgroupRootID(i); + pgroups.emplace_back(std::make_shared(pgroupRootID)); + } + + // create load model + std::unique_ptr loadmodel = std::unique_ptr(new LinearLoadModel()); + + + /* read in parameters from ctparam */ + DimType dim = cfg.get("ct.dim"); + + bool isdg=("FE_DGQ"==cfg.get("ct.FE","FE_Q")); + + + + + + Converter converter; + // TODO: read in boundary vector from ctparam + std::vector boundary(dim, true); + // use no hierarchization in this example + std::vector hierarchizationDims(dim, true); + + // check whether parallelization vector p agrees with nprocs + IndexType checkProcs = 1; + for (auto k : p) checkProcs *= k; + assert(checkProcs == IndexType(nprocs)); + + /* generate a list of levelvectors and coefficients + * CombiMinMaxScheme will create a classical combination scheme. + * however, you could also read in a list of levelvectors and coefficients + * from a file */ + CombiMinMaxScheme combischeme(dim, lmin, lmax); + combischeme.createAdaptiveCombischeme(); + std::vector levels = combischeme.getCombiSpaces(); + std::vector coeffs = combischeme.getCoeffs(); + + //Calculate the number of degrees of freedom. + int number_points=0; + for(int i=0; i taskIDs; + for (size_t i = 0; i < levels.size(); i++) { + std::string file_name = "deal_config/"+std::string("p")+std::to_string(i)+".json"; + converter.toJSONForDealII("ctparam",file_name, levels[i],i); + usleep(10); + Task* t; + + if(!isdg){ + t = new TaskExample(dim, levels[i], boundary, coeffs[i], loadmodel.get(),file_name, dt, makeExactSol, p); + tasks.push_back(t); + taskIDs.push_back(t->getID()); + } + else{ + t = new TaskEnsemble(dim, levels[i], boundary, coeffs[i], loadmodel.get(),file_name, dt, makeExactSol, p); + tasks.push_back(t); + taskIDs.push_back(t->getID()); + } + + } + + //gridout.write_pvtu + + // create combiparameters + //dim, lmin,lmax kann ich aus json lesen. + //boundary i have to read from ct params but how + // levels is just array of levels between lim and lmax + //taskID for each level we create a new task and here are the IDs + CombiParameters params( dim, lmin, lmax, boundary, levels, + coeffs, hierarchizationDims, taskIDs, ncombi, tasks[0]->getNumGrids());//, reduceCombinationDimsLmin, reduceCombinationDimsLmax); + + params.setParallelization(p); + // create abstraction for Manager + ProcessManager manager(pgroups, tasks, params, std::move(loadmodel)); + + // the combiparameters are sent to all process groups before the + // computations start + manager.updateCombiParameters(); + + /* distribute task according to load model and start computation for + * the first time */ + Stats::startEvent("manager run first"); + manager.runfirst(); + Stats::stopEvent("manager run first"); + Stats::startEvent("correct computation"); + + std::chrono::nanoseconds duration_combination=std::chrono::nanoseconds::zero(); + for (size_t i = 1; i < ncombi; ++i) { + Stats::startEvent("combine"); + if(do_combine){ + manager.combine(); + } + Stats::stopEvent("combine"); + + + + + // run tasks for next time interval + Stats::startEvent("manager run"); + manager.runnext(); + Stats::stopEvent("manager run"); + table.print(false); + } + manager.combine(); + + //std::cout<< (TaskEnsemble)tasks[0]->dfgEnsemble_<("ct.FE","FE_Q")+"/exact_solution_level"+ toString(lmin)+".dat"); + } + else + filename=("out/"+cfg.get("ct.FE","FE_Q")+"/csmi_"+toString(lmin)+"_ma_"+toString(lmax)+"_ev_"+toString(leval)+com+std::to_string(ncombi)+".dat"); + + Stats::startEvent("manager write solution"); + manager.parallelEval(leval, filename, 0); + Stats::stopEvent("manager write solution"); + + //table.stop_and_set("time->fullgrid"); + //table.print(false); + // send exit signal to workers in order to enable a clean program termination + manager.exit(); + { + + DataOut<1> gridout; + std::vector> pvd_labels; + for(unsigned int t = 0; t< ncombi; t++ ) + { + std::vector pvtu_labels; + for(unsigned int l = 0; l< levels.size(); l++ ) + pvtu_labels.push_back("solution_" + std::to_string(l) + "_" + Utilities::int_to_string(t, 3) + ".vtu"); + + pvd_labels.emplace_back(t, "solution_" + std::to_string(t) + ".pvtu"); + std::ofstream outfile ("solution/solution_" + std::to_string(t) + ".pvtu"); + gridout.write_pvtu_record(outfile, pvtu_labels); + } + + std::ofstream outfile ("solution/solution.pvd"); + DataOutBase::write_pvd_record(outfile, pvd_labels); + + } + } + + // this code is only execute by the worker processes + else { + // create abstraction of the process group from the worker's view + ProcessGroupWorker pgroup; + + // wait for instructions from manager + SignalType signal = -1; + + while (signal != EXIT) signal = pgroup.wait(); + } + Stats::stopEvent("overall computation"); + Stats::finalize(); + + /* write stats to json file for postprocessing */ + std::string filepath="timers/helium/"+cfg.get("ct.FE","FE_Q")+(do_combine ? "true": "false")+"/p_"+toString(p)+"_mi_"+toString(lmin)+"_ma_"+toString(lmax)+"_ngroup_"+std::to_string(ngroup)+"_ncombi_"+std::to_string(ncombi)+".json"; + std::cout<<"Kombinieren:" <1)) + then + if (($comp_type_num == 1)) + then + continue + fi + fi + if ((processes==1)) + then + p="1 1 1" + elif ((processes==2)) + then + p="1 2 1" + elif ((processes==8)) + then + p="2 2 2" + elif ((processes==16)) + then + p="4 2 2" + fi + (( proc_1=$processes+1)) + echo -e "rm solution/* + rm deal_config/* + mpirun -np $proc_1 ./dealii_example" > run2.sh + + for ncombi in 10 100; do + if ((ncombi == 10)) + then + dt=0.1 + else + dt=0.01 + fi + for DO_COMBINE in "true" "false"; do + echo "$comp_type DO_COMBINE=$DO_COMBINE now ncombi=$ncombi, p=$p">> L2_errors.dat + for ((lmax=2;lmax<=9;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= $p\nncombi=$ncombi \nFE=FE_$comp_type \n DO_COMBINE=$DO_COMBINE \n[application]\ndt=$dt\n \n[manager]\nngroup = 1\nnprocs = $processes \n [exact] \n makeExact=true" > ctparam + sh ./run2.sh + referencesolution="out/FE_$comp_type/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin7)) + then + continue + fi + fi + + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= $p\nncombi=$ncombi \nFE=FE_$comp_type \n DO_COMBINE=$DO_COMBINE \n[application]\ndt=$dt\n \n[manager]\nngroup = 1\nnprocs = $processes \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_$comp_type/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_$DO_COMBINE.dat0" + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat ${comp_type}_${DO_COMBINE}_${ncombi}_${lmin}_${lmax}= + done + done + done + done + done +done \ No newline at end of file diff --git a/distributedcombigrid/examples/dealii_example/graph.gnu b/distributedcombigrid/examples/dealii_example/graph.gnu new file mode 100644 index 000000000..9aa65513f --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/graph.gnu @@ -0,0 +1,18 @@ +#!/bin/gnuplot + +#set terminal pngcairo size 800,600 enhanced font "Verdana,10" +set mouse +set xrange [0:1] +set yrange [0:1] +set zrange [-2:2] +set cbrange [-1:1] +set xlabel "x" +set ylabel "y" +set style line 1 lt -1 lw 0.3 +set pm3d hidden3d 1 +do for [i = 1:10] { + splot "out/solution.dat" index (i-1) using 1:2:3 with pm3d + pause 0.2 +} +reread +pause mouse keypress diff --git a/distributedcombigrid/examples/dealii_example/hyperrectangle.json b/distributedcombigrid/examples/dealii_example/hyperrectangle.json new file mode 100644 index 000000000..c99b886c7 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/hyperrectangle.json @@ -0,0 +1,30 @@ +{ + "General": { + "Dim": 2, + "Degree": 3, + "Case": "hyperrectangle" + }, + "Case": { + "NRefinements": 4, + "NSubdivisions": {"X" : 1, "Y" : 1, "Z" : 1}, + "Periodic": true, + "Curved": false + }, + "SpatialDiscretization" : { + "TriangulationType": "FullyDistributed", + "Mapping": 1, + "FE": "FE_Q" + }, + "TemporalDiscretization": { + "FinalTime": 2.0, + "CFLNumber": 0.15 + }, + "Postprocessing" : { + "StandardOutput": { + "Tick": 0.25 + }, + "VTK" : { + "Enabled": false + } + } +} diff --git a/distributedcombigrid/examples/dealii_example/l2_error.dat b/distributedcombigrid/examples/dealii_example/l2_error.dat new file mode 100644 index 000000000..5b2ed2743 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/l2_error.dat @@ -0,0 +1,58 @@ +2_2_7 0,000129376 +2_3_7 8,2764e-05 +3_3_7 1,15933e-05 +2_4_7 8,85572e-05 +3_4_7 0,000101612 +4_4_7 4,05003e-05 +2_5_7 0,000114802 +3_5_7 6,48077e-05 +4_5_7 0,000100753 +5_5_7 5,22726e-05 +2_6_7 0,000105084 +3_6_7 0,000123558 +4_6_7 6,6912e-05 +5_6_7 0,00010319 +6_6_7 5,52499e-05 +2_7_7 0,000116699 +3_7_7 7,44093e-05 +4_7_7 0,000123279 +5_7_7 7,30191e-05 +6_7_7 0,000116497 +7_7_7 0 +2_8_7 0,000102838 +3_8_7 0,000114051 +4_8_7 5,59231e-05 +5_8_7 0.000109447 +6_8_7 2.24305e-06 +2_9_7 0.000102393 +3_9_7 6.41268e-05 +2_2_7 0.000150068 +2_3_7 8.7508e-05 +3_3_7 5.936e-05 +2_4_7 8.19009e-05 +3_4_7 8.57386e-05 +4_4_7 1.57991e-05 +2_2_7 0.000150068 +2_3_7 8.7508e-05 +3_3_7 5.936e-05 +2_4_7 8.19009e-05 +3_4_7 8.57386e-05 +4_4_7 1.57991e-05 +2_5_7 9.74648e-05 +3_5_7 5.40534e-05 +4_5_7 9.02521e-05 +5_5_7 3.82306e-06 +2_6_7 9.79029e-05 +3_6_7 0.000109122 +4_6_7 4.87784e-05 +5_6_7 9.4675e-05 +6_6_7 7.70989e-07 +6_7_7 0.000109402 +7_7_7 0 +2_8_7 0.000102838 +3_8_7 0.000114051 +4_8_7 5.59231e-05 +5_8_7 0.000109447 +6_8_7 2.24305e-06 +2_9_7 0.000102393 +3_9_7 6.41268e-05 diff --git a/distributedcombigrid/examples/dealii_example/l2_error_combi.dat b/distributedcombigrid/examples/dealii_example/l2_error_combi.dat new file mode 100644 index 000000000..0f28a4efd --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/l2_error_combi.dat @@ -0,0 +1,1106 @@ + +\n now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00629792 +3_3 0.00643861 +2_4 0.00224938 +3_4 0.00228763 +4_4 0.00229119 +2_5 0.000816689 +3_5 0.000822495 +4_5 0.000823236 +5_5 0.000823311 +2_6 0.000292276 +3_6 0.000292982 +4_6 0.000293082 +5_6 0.000293097 +6_6 0.000293098 +2_7 0.000103827 +3_7 0.000103903 +4_7 0.000103914 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=100 und dt=0.01 +\n now ncombi=10 und dt=0.1 +2_2 0.0266899 +2_3 0.00626623 +3_3 0.00643861 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +2_7 0.000103818 +3_7 0.000103902 +7_7 0.000103917 +//up to here everythin is combining + +//below is just without combining +\n now ncombi=10 und dt=0.1 and lmax=7 +2_7 0.000103749 +3_7 0.000103896 +7_7 0.000103917 +\n CG with combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00629792 +3_3 0.00643861 +\n CG with combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +\n CG with combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00629792 +3_3 0.00643861 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 + +############################################################################################################## +############################################################################################################## +############################################################################################################## +############################################################################################################## +############################################################################################################## +\n CG with combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00629792 +3_3 0.00643861 +2_4 0.00224938 +3_4 0.00228763 +4_4 0.00229119 +2_5 0.000816689 +3_5 0.000822495 +5_5 0.000823311 +2_6 0.000292276 +3_6 0.000292982 +6_6 0.000293098 +2_7 0.000103827 +3_7 0.000103903 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG without combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00606264 +3_3 0.00643861 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +2_6 0.000291574 +3_6 0.000292917 +6_6 0.000293098 +2_7 0.000103749 +\n DG with combination now ncombi=100 und dt=0.01 +2_2 1.48659e-07 +2_3 0.00276725 +3_3 2.59927e-09 +2_4 0.000753363 +3_4 0.000295478 +4_4 6.41646e-11 +2_5 0.000329289 +3_5 0.000145642 +5_5 1.47861e-12 +2_6 0.000117065 +3_6 4.88595e-05 +6_6 1.5538e-14 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 1.48659e-07 +2_3 0.00150182 +3_3 2.59927e-09 +2_4 0.000622322 +3_4 0.000179942 +4_4 6.41646e-11 +2_5 0.000208729 +3_5 8.4627e-05 +5_5 1.47861e-12 +2_6 6.4117e-05 +3_6 3.04105e-05 +\n DG without combination now ncombi=100 und dt=0.01 +6_6 1.5538e-14 +\n DG with combination now ncombi=100 und dt=0.01 +2_2 1.48659e-07 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 1.48659e-07 +2_3 0.00150182 +3_3 2.59927e-09 +2_4 0.000622322 +3_4 0.000179942 +4_4 6.41646e-11 +2_5 0.000208729 +3_5 8.4627e-05 +5_5 1.47861e-12 +2_6 6.4117e-05 +3_6 3.04105e-05 +\n DG with combination now ncombi=100 und dt=0.01 +\n DG with combination now ncombi=100 und dt=0.01 +2_4 0.000753363 +3_4 0.000295478 +4_4 6.41646e-11 +2_5 0.000329289 +3_5 0.000145642 +5_5 1.47861e-12 +2_6 0.000117065 +3_6 4.88595e-05 +6_6 1.5538e-14 +\n DG with combination now ncombi=100 und dt=0.01 +\n DG without combination now ncombi=100 und dt=0.01 +\n DG without combination now ncombi=100 und dt=0.01 +2_4 0.000622324 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 8.25093e-08 +3_3 1.56672e-09 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 7.416e-08 +3_3 1.43386e-09 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 7.85294e-08 +3_3 1.50855e-09 +\n DG with combination now ncombi=100 und dt=0.01 +2_3 0.00276725 +3_3 2.59927e-09 +\n DG with combination now ncombi=100 und dt=0.01 +2_3 0.00276725 +3_3 2.59927e-09 +\n DG without combination now ncombi=100 und dt=0.01, now just fullgrids +2_2 0.0343011 +3_3 0.0134302 +4_4 0.00418683 +--------------------------------------------------------------------------------------------------------------------------------- +----------- Neue DG-Fehler berechnung ----------- +---------------------------------------------------------------------------------------------------------------------------------\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.0343011 +2_3 0.0134407 +3_3 0.0134302 +2_4 0.0041792 +3_4 0.00418165 +4_4 0.00418683 +2_5 0.0012515 +3_5 0.001254 +5_5 0.00125575 +2_6 0.000382095 +3_6 0.000382874 + +6_6 0.000383114 +\n DG without combination now ncombi=10 und dt=0.1 +2_2 0.0343011 +2_3 0.0134407 +3_3 0.0134302 +2_4 0.0041792 +3_4 0.00418165 +4_4 0.00418683 +2_5 0.0012515 +3_5 0.001254 +\n DG without combination now ncombi=100 und dt=0.01 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.034301 +2_3 0.0134407 +3_3 0.0134302 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.034301 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.034301 +2_3 0.0134407 +3_3 0.0134302 +\n DG with combination now ncombi=100 und dt=0.01 +2_2 0.034301 +2_3 0.0113699 +3_3 0.0134302 +2_4 0.00395265 +3_4 0.00426782 +4_4 0.00418683 +2_5 0.00124097 +3_5 0.0012744 +5_5 0.00125575 +2_6 0.000367075 +3_6 0.000375228 +6_6 0.000383114 +\n DG with combination now ncombi=10 und dt=0.1 +2_2 0.0343013 +2_3 0.0114942 +3_3 0.0134302 +2_4 0.00379536 +3_4 0.00415372 +4_4 0.00418683 +2_5 0.00124204 +3_5 0.00125369 +5_5 0.00125575 +2_6 0.000387269 +3_6 0.000382135 +6_6 0.000383114 +\n DG without combination now ncombi=100 und dt=0.01 +\n DG without combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.0268052 +2_3 0.00955384 +3_3 0.00970239 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.0268052 +2_3 0.00955384 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.0237579 +2_3 0.00897942 +3_3 0.00936738 +2_4 0.00323954 +3_4 0.00338916 +4_4 0.00342167 +2_5 0.00118433 +3_5 0.00122499 +5_5 0.00123783 +2_6 0.000430747 +3_6 0.000440278 +6_6 0.000443755 +\n DG without combination now ncombi=100 und dt=0.01 +\n DG without combination now ncombi=10 und dt=0.1 +2_2 0.0237579 +2_3 0.00897942 +3_3 0.00936738 +2_4 0.00323954 +3_4 0.00338916 +4_4 0.00342167 +2_5 0.00118433 +3_5 0.00122499 +5_5 0.00123783 +2_6 0.000430747 +3_6 0.000440278 +6_6 0.000443755 +\n DG with combination now ncombi=100 und dt=0.01 +2_2 0.0237579 +2_3 0.00899969 +3_3 0.00936738 +2_4 0.00323021 +3_4 0.00336916 +4_4 0.00342167 +2_5 0.0011759 +3_5 0.00121804 +5_5 0.00123783 +2_6 0.000428148 +3_6 0.000438632 +6_6 0.000443755 +\n DG with combination now ncombi=10 und dt=0.1 +2_2 0.0237579 +2_3 0.00897686 +3_3 0.00936738 +2_4 0.00322722 +3_4 0.00337436 +4_4 0.00342167 +2_5 0.0011778 +3_5 0.00122032 +5_5 0.00123783 +2_6 0.000428975 +3_6 0.00043927 +6_6 0.000443755 +\n CG with combination now ncombi=100 und dt=0.01 +2_2 0.0246825 +2_3 0.0102059 +3_3 0.0103866 +2_4 0.0036361 +3_4 0.00366973 +4_4 0.00367281 +2_5 0.00128316 +3_5 0.00128775 +5_5 0.00128835 +2_6 0.000452582 +3_6 0.00045313 +6_6 0.000453212 +\n CG with combination now ncombi=10 und dt=0.1 +2_2 0.0246825 +2_3 0.0102059 +3_3 0.0103866 +2_4 0.0036361 +3_4 0.00366973 +4_4 0.00367281 +2_5 0.00128316 +3_5 0.00128775 +5_5 0.00128835 +2_6 0.000452582 +3_6 0.00045313 +6_6 0.000453212 +\n CG without combination now ncombi=100 und dt=0.01 +2_2 0.0246825 +2_3 0.0102059 +3_3 0.0103866 +2_4 0.0036361 +3_4 0.00366973 +4_4 0.00367281 +2_5 0.00128316 +3_5 0.00128775 +5_5 0.00128835 +2_6 0.000452582 +3_6 0.00045313 +6_6 0.000453212 +\n CG without combination now ncombi=10 und dt=0.1 +2_2 0.0246825 +2_3 0.0102059 +3_3 0.0103866 +2_4 0.0036361 +3_4 0.00366973 +4_4 0.00367281 +2_5 0.00128316 +3_5 0.00128775 +5_5 0.00128835 +2_6 0.000452582 +3_6 0.00045313 +6_6 0.000453212 +\n CG with combination now ncombi=100 und dt=0.01 +2_2 0.0246825 +2_3 0.0102059 +3_3 0.0103866 +2_4 0.0036361 +3_4 0.00366973 +4_4 0.00367281 +2_5 0.00128316 +3_5 0.00128775 +\n CG with combination now ncombi=100 und dt=0.01 +////////////////////////////////////////////////////////////////////////// + ||||| now with the right advection |||||||| +\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n CG with combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00629792 +3_3 0.00643861 +2_4 0.00224938 +3_4 0.00228763 +4_4 0.00229119 +2_5 0.000816689 +3_5 0.000822495 +5_5 0.000823311 +2_6 0.000292276 +3_6 0.000292982 +6_6 0.000293098 +\n CG with combination now ncombi=10 und dt=0.1 +2_2 0.02669 +2_3 0.00626623 +3_3 0.00643861 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +\n CG without combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00606264 +3_3 0.00643861 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +2_6 0.000291574 +3_6 0.000292917 +6_6 0.000293098 +\n CG without combination now ncombi=10 und dt=0.1 +2_2 0.02669 +2_3 0.00606266 +3_3 0.00643861 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +2_6 0.000291575 +3_6 0.000292917 +6_6 0.000293098 +\n DG with combination now ncombi=100 und dt=0.01 +2_2 0.034301 +2_3 0.0113699 +3_3 0.0134302 +2_4 0.00395265 +3_4 0.00426782 +4_4 0.00418683 +2_5 0.00124097 +3_5 0.0012744 +5_5 0.00125575 +2_6 0.000367075 +3_6 0.000375228 +6_6 0.000383114 +\n DG with combination now ncombi=10 und dt=0.1 +2_2 0.0343013 +2_3 0.0114942 +3_3 0.0134302 +2_4 0.00379536 +3_4 0.00415372 +4_4 0.00418683 +2_5 0.00124204 +3_5 0.00125369 +5_5 0.00125575 +2_6 0.000387269 +3_6 0.000382135 +6_6 0.000383114 +\n DG without combination now ncombi=100 und dt=0.01 +\n DG without combination now ncombi=10 und dt=0.1 +2_2 0.0343013 +2_3 0.0134405 +3_3 0.0134302 +2_4 0.00417922 +3_4 0.00418164 +4_4 0.00418683 +2_5 0.0012515 +3_5 0.00125401 +5_5 0.00125575 +2_6 0.000382095 +3_6 0.000382874 +6_6 0.000383114 +\n DG without combination now ncombi=100 und dt=0.01 +2_2 0.034301 +2_3 0.0134407 +3_3 0.0134302 +2_4 0.0041792 +3_4 0.00418165 +4_4 0.00418683 +2_5 0.0012515 +3_5 0.001254 +5_5 0.00125575 +2_6 0.000382095 +3_6 0.000382874 +6_6 0.000383114 +\n CG without combination now ncombi=100 und dt=0.01 +\n CG without combination now ncombi=10 und dt=0.1 +1_2 0.0293386 +1_3 0.00588322 +1_4 0.00210106 +1_5 0.000787399 +1_6 0.000287569 +1_7 0.000103166 +\n CG with combination now ncombi=10 und dt=0.1 and 2d +2_2 0.0822434 +2_3 0.0281404 +3_3 0.028713 +2_4 0.0145751 +3_4 0.0147232 +4_4 0.0147363 +2_5 0.0075323 +3_5 0.00755791 +5_5 0.00756134 +2_6 0.00382314 +3_6 0.00382698 +6_6 0.00382762 +2_7 0.00192416 +3_7 0.00192472 +7_7 0.00192483 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG without combination now ncombi=10 und dt=0.1 +2_2 0.0274587 +2_3 0.00812509 +3_3 0.00793864 +2_4 0.00262844 +3_4 0.00259012 +4_4 0.00258571 +2_5 0.00088139 +3_5 0.000878454 +5_5 0.00087782 +2_6 0.000302928 +3_6 0.000303238 +6_6 0.000303006 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +1_2 0.0274921 +1_3 0.00583837 +1_4 0.00212887 +\n CG with combination now ncombi=100 und dt=0.01 +1_2 0.0273736 +1_3 0.0058183 +1_4 0.00213429 +1_5 0.000796045 +1_6 0.000289096 +1_7 0.000103409 +\n CG without combination now ncombi=10 und dt=0.1 +1_2 0.0274921 +1_3 0.00583837 +1_4 0.00212887 +1_5 0.00079441 +1_6 0.000288777 +1_7 0.000103352 +\n CG without combination now ncombi=100 und dt=0.01 +2_2 0.0266899 +2_3 0.00606264 +3_3 0.00643861 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +2_6 0.000291574 +3_6 0.000292917 +6_6 0.000293098 +2_7 0.000103749 +3_7 0.000103896 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n CG with combination now ncombi=100 und dt=0.01 +\n DG with combination now ncombi=10 und dt=0.1 and 2d +\n DG with combination now ncombi=10 und dt=0.1 and 2d +1_2 0.0580102 +2_2 0.0675694 +1_3 0.0276098 +2_3 0.0343848 +3_3 0.0370117 +1_4 0.0153124 +2_4 0.0171009 +3_4 0.0175143 +4_4 0.0175446 +1_5 0.00793096 +2_5 0.00820126 +3_5 0.00829545 +5_5 0.00833637 +1_6 0.00367004 +2_6 0.00394475 +3_6 0.00401112 +6_6 0.00403111 +1_7 0.00189388 +2_7 0.00195554 +3_7 0.00197237 +7_7 0.00197703 +\n CG with combination now ncombi=100 und dt=0.01 +1_2 0.0284694 +2_2 0.0281218 +1_3 0.00643819 +2_3 0.00687611 +3_3 0.00699008 +1_4 0.0021234 +2_4 0.00226421 +3_4 0.00231903 +4_4 0.00232807 +1_5 0.000772981 +2_5 0.000809242 +\n CG with combination now ncombi=100 und dt=0.01 +1_2 0.0273736 +2_2 0.0266899 +1_3 0.0058183 +2_3 0.00629792 +3_3 0.00643861 +1_4 0.00213429 +2_4 0.00224938 +3_4 0.00228763 +4_4 0.00229119 +1_5 0.000796045 +2_5 0.000816689 +3_5 0.000822495 +5_5 0.000823311 +1_6 0.000289096 +2_6 0.000292276 +3_6 0.000292982 +6_6 0.000293098 +\n CG with combination now ncombi=10 und dt=0.1 +1_2 0.0274921 +2_2 0.02669 +1_3 0.00583837 +2_3 0.00626623 +3_3 0.00643861 +1_4 0.00212887 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +1_5 0.00079441 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +1_6 0.000288777 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +1_7 0.000103352 +2_7 0.000103818 +3_7 0.000103902 +1_8 3.67216e-05 +2_8 3.67742e-05 +3_8 3.6783e-05 +1_9 1.30057e-05 +2_9 1.30115e-05 +3_9 1.30124e-05 +\n CG without combination now ncombi=100 und dt=0.01 +1_2 0.0293386 +2_2 0.0266899 +1_3 0.00588322 +2_3 0.00606264 +3_3 0.00643861 +1_4 0.00210106 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +1_5 0.000787399 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +1_6 0.000287569 +2_6 0.000291574 +3_6 0.000292917 +6_6 0.000293098 +\n CG without combination now ncombi=10 und dt=0.1 +1_2 0.0293386 +2_2 0.02669 +1_3 0.00588322 +2_3 0.00606266 +3_3 0.00643861 +1_4 0.00210106 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +1_5 0.000787399 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +1_6 0.000287569 +2_6 0.000291575 +3_6 0.000292917 +6_6 0.000293098 +1_7 0.000103166 +2_7 0.000103749 +3_7 0.000103896 +1_8 3.66919e-05 +2_8 3.6767e-05 +\n CG without combination now ncombi=100 und dt=0.01 +\n CG without combination now ncombi=100 und dt=0.01 +\n CG without combination now ncombi=10 und dt=0.1 +1_9 1.30019e-05 +2_9 1.30108e-05 +\n CG without combination now ncombi=100 und dt=0.01 +1_2 0.0293386 +2_2 0.0266899 +1_3 0.00588322 +2_3 0.00606264 +3_3 0.00643861 +1_4 0.00210106 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +1_5 0.000787399 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +1_6 0.000287569 +\n CG without combination now ncombi=100 und dt=0.01 +\n CG without combination now ncombi=100 und dt=0.01 +1_2 0.0293386 +2_2 0.0266899 +1_3 0.00588322 +2_3 0.00606264 +3_3 0.00643861 +1_4 0.00210106 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +1_5 0.000787399 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +1_6 0.000287569 +2_6 0.000291574 +3_6 0.000292917 +6_6 0.000293098 +\n CG without combination now ncombi=10 und dt=0.1 +1_2 0.0293386 +2_2 0.02669 +1_3 0.00588322 +2_3 0.00606266 +3_3 0.00643861 +1_4 0.00210106 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +1_5 0.000787399 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +1_6 0.000287569 +2_6 0.000291575 +3_6 0.000292917 +6_6 0.000293098 +1_7 0.000103166 +2_7 0.000103749 +3_7 0.000103896 +1_8 3.66919e-05 +2_8 3.6767e-05 +3_8 3.67824e-05 +\n CG with combination now ncombi=100 und dt=0.01 +1_2 0.0273736 +2_2 0.0266899 +1_3 0.0058183 +2_3 0.00629792 +3_3 0.00643861 +1_4 0.00213429 +2_4 0.00224938 +3_4 0.00228763 +4_4 0.00229119 +1_5 0.000796045 +2_5 0.000816689 +3_5 0.000822495 +5_5 0.000823311 +1_6 0.000289096 +2_6 0.000292276 +3_6 0.000292982 +6_6 0.000293098 +\n CG with combination now ncombi=10 und dt=0.1 +1_2 0.0274921 +2_2 0.02669 +1_3 0.00583837 +2_3 0.00626623 +3_3 0.00643861 +1_4 0.00212887 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +1_5 0.00079441 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +1_6 0.000288777 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +1_7 0.000103352 +2_7 0.000103818 +3_7 0.000103902 +1_8 3.67216e-05 +2_8 3.67742e-05 +3_8 3.6783e-05 +\n DG with combination now ncombi=100 und dt=0.01 +1_2 0.0261178 +2_2 0.034301 +1_3 0.00741749 +2_3 0.0113699 +3_3 0.0134302 +1_4 0.00266553 +2_4 0.00395265 +3_4 0.00426782 +4_4 0.00418683 +1_5 0.00112338 +2_5 0.00124097 +3_5 0.0012744 +5_5 0.00125575 +1_6 0.000338647 +2_6 0.000367075 +3_6 0.000375228 +6_6 0.000383114 +\n DG with combination now ncombi=10 und dt=0.1 +1_2 0.0265993 +2_2 0.0343013 +1_3 0.00748201 +2_3 0.0114942 +3_3 0.0134302 +1_4 0.00274756 +2_4 0.00379536 +3_4 0.00415372 +4_4 0.00418683 +1_5 0.00117687 +2_5 0.00124204 +3_5 0.00125369 +5_5 0.00125575 +1_6 0.000385102 +2_6 0.000387269 +3_6 0.000382135 +6_6 0.000383114 +\n DG without combination now ncombi=100 und dt=0.01 +1_2 0.0363669 +2_2 0.034301 +1_3 0.0141041 +2_3 0.0134407 +3_3 0.0134302 +1_4 0.00432426 +2_4 0.0041792 +3_4 0.00418165 +4_4 0.00418683 +1_5 0.00127838 +\n DG without combination now ncombi=100 und dt=0.01 +1_2 0.0363669 +2_2 0.034301 +\n DG without combination now ncombi=100 und dt=0.01 +1_5 0.00127838 +2_5 0.0012515 +3_5 0.001254 +5_5 0.00125575 +1_6 0.000385311 +2_6 0.000382095 +3_6 0.000382874 +6_6 0.000383114 +\n DG without combination now ncombi=10 und dt=0.1 +1_2 0.0363643 +2_2 0.0343013 +1_3 0.0141044 +2_3 0.0134405 +3_3 0.0134302 +1_4 0.00432419 +2_4 0.00417922 +3_4 0.00418164 +4_4 0.00418683 +1_5 0.00127839 +2_5 0.0012515 +3_5 0.00125401 +5_5 0.00125575 +1_6 0.000385314 +2_6 0.000382095 +3_6 0.000382874 +6_6 0.000383114 +\n DG with combination now ncombi=100 und dt=0.01 +1_2 0.0261178 +2_2 0.034301 +1_3 0.00741749 +2_3 0.0113699 +3_3 0.0134302 +1_4 0.00266553 +2_4 0.00395265 +3_4 0.00426782 +4_4 0.00418683 +1_5 0.00112338 +2_5 0.00124097 +3_5 0.0012744 +5_5 0.00125575 +1_6 0.000338647 +2_6 0.000367075 +3_6 0.000375228 +6_6 0.000383114 +\n DG with combination now ncombi=10 und dt=0.1 +1_2 0.0265993 +2_2 0.0343013 +1_3 0.00748201 +2_3 0.0114942 +3_3 0.0134302 +1_4 0.00274756 +2_4 0.00379536 +3_4 0.00415372 +4_4 0.00418683 +1_5 0.00117687 +2_5 0.00124204 +3_5 0.00125369 +5_5 0.00125575 +1_6 0.000385102 +2_6 0.000387269 +3_6 0.000382135 +6_6 0.000383114 +\n CG with combination now ncombi=100 und dt=0.01 Parallel +1_2 0.0284694 +2_2 0.0281218 +1_3 0.00643819 +2_3 0.00687611 +3_3 0.00699008 +1_4 0.0021234 +2_4 0.00226421 +3_4 0.00231903 +4_4 0.00232807 +1_5 0.000772981 +2_5 0.000809242 +3_5 0.000821982 +5_5 0.000825103 +1_6 0.000282292 +2_6 0.000289945 +3_6 0.000292317 +6_6 0.000293005 +1_7 0.000101894 +2_7 0.000103315 +3_7 0.000103731 +1_8 3.64284e-05 +2_8 3.66752e-05 +3_8 3.67477e-05 +1_9 1.29502e-05 +2_9 1.2993e-05 +3_9 1.30057e-05 +1_2 0.0284694 +2_2 0.0281218 +1_3 0.00643819 +2_3 0.00687611 +3_3 0.00699008 +1_4 0.0021234 +2_4 0.00226421 +3_4 0.00231903 +4_4 0.00232807 +1_5 0.000772981 +2_5 0.000809242 +3_5 0.000821982 +5_5 0.000825103 +1_6 0.000282292 +2_6 0.000289945 +3_6 0.000292317 +6_6 0.000293005 +1_7 0.000101894 +2_7 0.000103315 +3_7 0.000103731 +1_8 3.64284e-05 +2_8 3.66752e-05 +3_8 3.67477e-05 +1_9 1.29502e-05 +\n CG without combination now ncombi=10 und dt=0.1 +1_2 0.0293386 +2_2 0.02669 +1_3 0.00588322 +2_3 0.00606266 +3_3 0.00643861 +1_4 0.00210106 +2_4 0.00220108 +3_4 0.0022828 +4_4 0.00229119 +1_5 0.000787399 +2_5 0.000810588 +3_5 0.000821873 +5_5 0.000823311 +1_6 0.000287569 +2_6 0.000291575 +3_6 0.000292917 +6_6 0.000293098 +1_7 0.000103166 +2_7 0.000103749 +3_7 0.000103896 +1_8 3.66919e-05 +2_8 3.6767e-05 +3_8 3.67824e-05 +\n CG with combination now ncombi=10 und dt=0.1 +1_2 0.0274921 +2_2 0.02669 +1_3 0.00583837 +2_3 0.00626623 +3_3 0.00643861 +1_4 0.00212887 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +1_5 0.00079441 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +1_6 0.000288777 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +1_7 0.000103352 +2_7 0.000103818 +3_7 0.000103902 +1_8 3.67216e-05 +2_8 3.67742e-05 +3_8 3.6783e-05 +\n CG with combination now ncombi=100 und dt=0.01 Parallel +1_2 0.0274921 +2_2 0.02669 +1_3 0.00583837 +2_3 0.00626623 +3_3 0.00643861 +1_4 0.00212887 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +1_5 0.00079441 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +1_6 0.000288777 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +1_7 0.000103352 +2_7 0.000103818 +3_7 0.000103902 +1_8 3.67216e-05 +2_8 3.67742e-05 +3_8 3.6783e-05 +1_9 1.29502e-05 +2_9 1.2993e-05 +3_9 1.30057e-05 +1_2 0.0274921 +2_2 0.02669 +1_3 0.00583837 +2_3 0.00626623 +3_3 0.00643861 +1_4 0.00212887 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +1_5 0.00079441 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +1_6 0.000288777 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +1_7 0.000103352 +2_7 0.000103818 +3_7 0.000103902 +1_8 3.67216e-05 +2_8 3.67742e-05 +3_8 3.6783e-05 +1_9 1.29502e-05 +2_9 1.2993e-05 +3_9 1.30057e-05 +1_2 0.0274921 +2_2 0.02669 +1_3 0.00583837 +2_3 0.00626623 +3_3 0.00643861 +1_4 0.00212887 +2_4 0.00224398 +3_4 0.00228716 +4_4 0.00229119 +1_5 0.00079441 +2_5 0.000816028 +3_5 0.000822434 +5_5 0.000823311 +1_6 0.000288777 +2_6 0.000292195 +3_6 0.000292975 +6_6 0.000293098 +1_7 0.000103352 +2_7 0.000103818 +3_7 0.000103902 +1_8 3.67216e-05 +2_8 3.67742e-05 +3_8 3.6783e-05 +1_9 1.30057e-05 +2_9 1.30115e-05 +3_9 1.30124e-05 +1_2 0.0284694 +2_2 0.0281218 +1_3 0.00643819 +2_3 0.00687611 +3_3 0.00699008 +1_4 0.0021234 +2_4 0.00226421 +3_4 0.00231903 +4_4 0.00232807 +1_5 0.000772981 +2_5 0.000809242 +3_5 0.000821982 +5_5 0.000825103 +1_6 0.000282292 +2_6 0.000289945 +3_6 0.000292317 +6_6 0.000293005 +1_7 0.000101894 +2_7 0.000103315 +3_7 0.000103731 +1_8 3.64284e-05 +2_8 3.66752e-05 +3_8 3.67477e-05 +1_9 1.29502e-05 +2_9 1.2993e-05 +3_9 1.30057e-05 diff --git a/distributedcombigrid/examples/dealii_example/parameter_handler.cc b/distributedcombigrid/examples/dealii_example/parameter_handler.cc new file mode 100644 index 000000000..1f0b90c61 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/parameter_handler.cc @@ -0,0 +1,2336 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 1998 - 2018 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE.md at +// the top level directory of deal.II. +// +// --------------------------------------------------------------------- + + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +DEAL_II_NAMESPACE_OPEN + + +ParameterHandler::ParameterHandler() : entries(new boost::property_tree::ptree()) +{ +} + + +namespace +{ +std::string +mangle(const std::string & s) +{ + std::string u; + + // reserve the minimum number of characters we will need. it may + // be more but this is the least we can do + u.reserve(s.size()); + + // see if the name is special and if so mangle the whole thing + const bool mangle_whole_string = (s == "value"); + + // for all parts of the string, see if it is an allowed character or not + for(const char c : s) + { + static const std::string allowed_characters( + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); + + if((!mangle_whole_string) && (allowed_characters.find(c) != std::string::npos)) + u.push_back(c); + else + { + u.push_back('_'); + static const char hex[16] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + u.push_back(hex[static_cast(c) / 16]); + u.push_back(hex[static_cast(c) % 16]); + } + } + + return u; +} + + + +std::string +demangle(const std::string & s) +{ + std::string u; + u.reserve(s.size()); + + for(unsigned int i = 0; i < s.size(); ++i) + if(s[i] != '_') + u.push_back(s[i]); + else + { + Assert(i + 2 < s.size(), ExcMessage("Trying to demangle an invalid string.")); + + unsigned char c = 0; + switch(s[i + 1]) + { + case '0': + c = 0 * 16; + break; + case '1': + c = 1 * 16; + break; + case '2': + c = 2 * 16; + break; + case '3': + c = 3 * 16; + break; + case '4': + c = 4 * 16; + break; + case '5': + c = 5 * 16; + break; + case '6': + c = 6 * 16; + break; + case '7': + c = 7 * 16; + break; + case '8': + c = 8 * 16; + break; + case '9': + c = 9 * 16; + break; + case 'a': + c = 10 * 16; + break; + case 'b': + c = 11 * 16; + break; + case 'c': + c = 12 * 16; + break; + case 'd': + c = 13 * 16; + break; + case 'e': + c = 14 * 16; + break; + case 'f': + c = 15 * 16; + break; + default: + Assert(false, ExcInternalError()); + } + switch(s[i + 2]) + { + case '0': + c += 0; + break; + case '1': + c += 1; + break; + case '2': + c += 2; + break; + case '3': + c += 3; + break; + case '4': + c += 4; + break; + case '5': + c += 5; + break; + case '6': + c += 6; + break; + case '7': + c += 7; + break; + case '8': + c += 8; + break; + case '9': + c += 9; + break; + case 'a': + c += 10; + break; + case 'b': + c += 11; + break; + case 'c': + c += 12; + break; + case 'd': + c += 13; + break; + case 'e': + c += 14; + break; + case 'f': + c += 15; + break; + default: + Assert(false, ExcInternalError()); + } + + u.push_back(static_cast(c)); + + // skip the two characters + i += 2; + } + + return u; +} + +/** + * Return whether a given node is a parameter node (as opposed + * to being a subsection or alias node) + */ +bool +is_parameter_node(const boost::property_tree::ptree & p) +{ + return static_cast(p.get_optional("value")); +} + + +/** + * Return whether a given node is a alias node (as opposed + * to being a subsection or parameter node) + */ +bool +is_alias_node(const boost::property_tree::ptree & p) +{ + return static_cast(p.get_optional("alias")); +} +} // namespace + + + +std::string +ParameterHandler::collate_path_string(const std::vector & subsection_path) +{ + if(subsection_path.size() > 0) + { + std::string p = mangle(subsection_path[0]); + for(unsigned int i = 1; i < subsection_path.size(); ++i) + { + p += path_separator; + p += mangle(subsection_path[i]); + } + return p; + } + else + return ""; +} + + +std::string +ParameterHandler::get_current_path() const +{ + return collate_path_string(subsection_path); +} + + + +std::string +ParameterHandler::get_current_full_path(const std::string & name) const +{ + std::string path = get_current_path(); + if(path.empty() == false) + path += path_separator; + + path += mangle(name); + + return path; +} + + + +std::string +ParameterHandler::get_current_full_path(const std::vector & sub_path, + const std::string & name) const +{ + std::string path = get_current_path(); + if(path.empty() == false) + path += path_separator; + + if(sub_path.empty() == false) + path += collate_path_string(sub_path) + path_separator; + + path += mangle(name); + + return path; +} + + + +void +ParameterHandler::parse_input(std::istream & input, + const std::string & filename, + const std::string & last_line, + const bool skip_undefined) +{ + AssertThrow(input, ExcIO()); + + // store subsections we are currently in + const std::vector saved_path = subsection_path; + + std::string input_line; + std::string fully_concatenated_line; + bool is_concatenated = false; + // Maintain both the current line number and the current logical line + // number, where the latter refers to the line number where (possibly) the + // current line continuation started. + unsigned int current_line_n = 0; + unsigned int current_logical_line_n = 0; + + // define an action that tries to scan a line. + // + // if that fails, i.e., if scan_line throws + // an exception either because a parameter doesn't match its + // pattern or because an associated action throws an exception, + // then try to rewind the set of subsections to the same + // point where we were when the current function was called. + // this at least allows to read parameters from a predictable + // state, rather than leave the subsection stack in some + // unknown state. + // + // after unwinding the subsection stack, just re-throw the exception + auto scan_line_or_cleanup = [this, &skip_undefined, &saved_path](const std::string & line, + const std::string & filename, + const unsigned int line_number) { + try + { + scan_line(line, filename, line_number, skip_undefined); + } + catch(...) + { + while((saved_path != subsection_path) && (subsection_path.size() > 0)) + leave_subsection(); + + throw; + } + }; + + + while(std::getline(input, input_line)) + { + ++current_line_n; + if(!is_concatenated) + current_logical_line_n = current_line_n; + // Trim the whitespace at the ends of the line here instead of in + // scan_line. This makes the continuation line logic a lot simpler. + input_line = Utilities::trim(input_line); + + // If we see the line which is the same as @p last_line , + // terminate the parsing. + if(last_line.length() != 0 && input_line == last_line) + break; + + // Check whether or not the current line should be joined with the next + // line before calling scan_line. + if(input_line.length() != 0 && input_line.find_last_of('\\') == input_line.length() - 1) + { + input_line.erase(input_line.length() - 1); // remove the last '\' + is_concatenated = true; + + fully_concatenated_line += input_line; + } + // If the previous line ended in a '\' but the current did not, then we + // should proceed to scan_line. + else if(is_concatenated) + { + fully_concatenated_line += input_line; + is_concatenated = false; + } + // Finally, if neither the previous nor current lines are continuations, + // then the current input line is entirely concatenated. + else + { + fully_concatenated_line = input_line; + } + + if(!is_concatenated) + { + scan_line_or_cleanup(fully_concatenated_line, filename, current_logical_line_n); + + fully_concatenated_line.clear(); + } + } + + // While it does not make much sense for anyone to actually do this, allow + // the last line to end in a backslash. to do do, we need to parse + // whatever was left in the stash of concatenated lines + if(is_concatenated) + scan_line_or_cleanup(fully_concatenated_line, filename, current_line_n); + + if(saved_path != subsection_path) + { + std::stringstream paths_message; + if(saved_path.size() > 0) + { + paths_message << "Path before loading input:\n"; + for(unsigned int i = 0; i < subsection_path.size(); ++i) + { + paths_message << std::setw(i * 2 + 4) << " " + << "subsection " << saved_path[i] << '\n'; + } + paths_message << "Current path:\n"; + for(unsigned int i = 0; i < subsection_path.size(); ++i) + { + paths_message << std::setw(i * 2 + 4) << " " + << "subsection " << subsection_path[i] + << (i == subsection_path.size() - 1 ? "" : "\n"); + } + } + // restore subsection we started with before throwing the exception: + subsection_path = saved_path; + AssertThrow(false, ExcUnbalancedSubsections(filename, paths_message.str())); + } +} + + + +void +ParameterHandler::parse_input(const std::string & filename, + const std::string & last_line, + const bool skip_undefined) +{ + PathSearch search("PARAMETERS"); + + std::string openname = search.find(filename); + std::ifstream file_stream(openname.c_str()); + parse_input(file_stream, filename, last_line, skip_undefined); +} + + + +void +ParameterHandler::parse_input_from_string(const std::string & s, + const std::string & last_line, + const bool skip_undefined) +{ + std::istringstream input_stream(s); + parse_input(input_stream, "input string", last_line, skip_undefined); +} + + + +namespace +{ +// Recursively go through the 'source' tree and see if we can find +// corresponding entries in the 'destination' tree. If not, error out +// (i.e. we have just read an XML file that has entries that weren't +// declared in the ParameterHandler object); if so, copy the value of these +// nodes into the destination object +void +read_xml_recursively(const boost::property_tree::ptree & source, + const std::string & current_path, + const char path_separator, + const std::vector> & patterns, + boost::property_tree::ptree & destination) +{ + for(boost::property_tree::ptree::const_iterator p = source.begin(); p != source.end(); ++p) + { + if(p->second.empty()) + { + const std::string full_path = + (current_path == "" ? p->first : current_path + path_separator + p->first); + + const std::string new_value = p->second.data(); + if(!(destination.get_optional(full_path) && + destination.get_optional(full_path + path_separator + "value"))) + continue; + + // first make sure that the new entry actually satisfies its + // constraints + const unsigned int pattern_index = + destination.get(full_path + path_separator + "pattern"); + AssertThrow(patterns[pattern_index]->match(new_value), + ParameterHandler::ExcInvalidEntryForPatternXML + // XML entries sometimes have extra surrounding + // newlines + (Utilities::trim(new_value), p->first, patterns[pattern_index]->description())); + + // set the found parameter in the destination argument + destination.put(full_path + path_separator + "value", new_value); + } + else + { + // it must be a subsection + read_xml_recursively(p->second, + (current_path == "" ? p->first : + current_path + path_separator + p->first), + path_separator, + patterns, + destination); + } + } +} +} // namespace + + + +void +ParameterHandler::parse_input_from_xml(std::istream & in) +{ + AssertThrow(in, ExcIO()); + // read the XML tree assuming that (as we + // do in print_parameters(XML) it has only + // a single top-level node called + // "ParameterHandler" + boost::property_tree::ptree single_node_tree; + // This boost function will raise an exception if this is not a valid XML + // file. + read_xml(in, single_node_tree); + + // make sure there is a single top-level element + // called "ParameterHandler" + AssertThrow(single_node_tree.get_optional("ParameterHandler"), + ExcInvalidXMLParameterFile("There is no top-level XML element " + "called \"ParameterHandler\".")); + + const std::size_t n_top_level_elements = + std::distance(single_node_tree.begin(), single_node_tree.end()); + if(n_top_level_elements != 1) + { + std::ostringstream top_level_message; + top_level_message << "The ParameterHandler input parser found " << n_top_level_elements + << " top level elements while reading\n " + << " an XML format input file, but there should be" + << " exactly one top level element.\n" + << " The top level elements are:\n"; + + unsigned int entry_n = 0; + for(boost::property_tree::ptree::iterator it = single_node_tree.begin(); + it != single_node_tree.end(); + ++it, ++entry_n) + { + top_level_message << " " << it->first + << (entry_n != n_top_level_elements - 1 ? "\n" : ""); + } + + // repeat assertion condition to make the printed version easier to read + AssertThrow(n_top_level_elements == 1, ExcInvalidXMLParameterFile(top_level_message.str())); + } + + // read the child elements recursively + const boost::property_tree::ptree & my_entries = single_node_tree.get_child("ParameterHandler"); + + read_xml_recursively(my_entries, "", path_separator, patterns, *entries); +} + + +void +ParameterHandler::parse_input_from_json(std::istream & in) +{ + AssertThrow(in, ExcIO()); + + boost::property_tree::ptree node_tree; + // This boost function will raise an exception if this is not a valid JSON + // file. + read_json(in, node_tree); + + // The xml function is reused to read in the xml into the parameter file. + // This means that only mangled files can be read. + read_xml_recursively(node_tree, "", path_separator, patterns, *entries); +} + + + +void +ParameterHandler::clear() +{ + entries = std_cxx14::make_unique(); +} + + + +void +ParameterHandler::declare_entry(const std::string & entry, + const std::string & default_value, + const Patterns::PatternBase & pattern, + const std::string & documentation) +{ + entries->put(get_current_full_path(entry) + path_separator + "value", default_value); + entries->put(get_current_full_path(entry) + path_separator + "default_value", default_value); + entries->put(get_current_full_path(entry) + path_separator + "documentation", documentation); + + patterns.reserve(patterns.size() + 1); + patterns.emplace_back(pattern.clone()); + entries->put(get_current_full_path(entry) + path_separator + "pattern", + static_cast(patterns.size() - 1)); + // also store the description of + // the pattern. we do so because we + // may wish to export the whole + // thing as XML or any other format + // so that external tools can work + // on the parameter file; in that + // case, they will have to be able + // to re-create the patterns as far + // as possible + entries->put(get_current_full_path(entry) + path_separator + "pattern_description", + patterns.back()->description()); + + // as documented, do the default value checking at the very end + AssertThrow(pattern.match(default_value), + ExcValueDoesNotMatchPattern(default_value, pattern.description())); +} + + + +void +ParameterHandler::add_action(const std::string & entry, + const std::function & action) +{ + actions.push_back(action); + + // get the current list of actions, if any + boost::optional current_actions = + entries->get_optional(get_current_full_path(entry) + path_separator + "actions"); + + // if there were actions already associated with this parameter, add + // the current one to it; otherwise, create a one-item list and use + // that + if(current_actions) + { + const std::string all_actions = + current_actions.get() + "," + Utilities::int_to_string(actions.size() - 1); + entries->put(get_current_full_path(entry) + path_separator + "actions", all_actions); + } + else + entries->put(get_current_full_path(entry) + path_separator + "actions", + Utilities::int_to_string(actions.size() - 1)); + + + // as documented, run the action on the default value at the very end + const std::string default_value = + entries->get(get_current_full_path(entry) + path_separator + "default_value"); + action(default_value); +} + + + +void +ParameterHandler::declare_alias(const std::string & existing_entry_name, + const std::string & alias_name, + const bool alias_is_deprecated) +{ + // see if there is anything to refer to already + Assert(entries->get_optional(get_current_full_path(existing_entry_name)), + ExcMessage("You are trying to declare an alias entry <" + alias_name + + "> that references an entry <" + existing_entry_name + + ">, but the latter does not exist.")); + // then also make sure that what is being referred to is in + // fact a parameter (not an alias or subsection) + Assert(entries->get_optional(get_current_full_path(existing_entry_name) + + path_separator + "value"), + ExcMessage("You are trying to declare an alias entry <" + alias_name + + "> that references an entry <" + existing_entry_name + + ">, but the latter does not seem to be a " + "parameter declaration.")); + + + // now also make sure that if the alias has already been + // declared, that it is also an alias and refers to the same + // entry + if(entries->get_optional(get_current_full_path(alias_name))) + { + Assert(entries->get_optional(get_current_full_path(alias_name) + path_separator + + "alias"), + ExcMessage("You are trying to declare an alias entry <" + alias_name + + "> but a non-alias entry already exists in this " + "subsection (i.e., there is either a preexisting " + "further subsection, or a parameter entry, with " + "the same name as the alias).")); + Assert(entries->get(get_current_full_path(alias_name) + path_separator + + "alias") == existing_entry_name, + ExcMessage("You are trying to declare an alias entry <" + alias_name + + "> but an alias entry already exists in this " + "subsection and this existing alias references a " + "different parameter entry. Specifically, " + "you are trying to reference the entry <" + + existing_entry_name + + "> whereas the existing alias references " + "the entry <" + + entries->get(get_current_full_path(alias_name) + path_separator + + "alias") + + ">.")); + } + + entries->put(get_current_full_path(alias_name) + path_separator + "alias", existing_entry_name); + entries->put(get_current_full_path(alias_name) + path_separator + "deprecation_status", + (alias_is_deprecated ? "true" : "false")); +} + + + +void +ParameterHandler::enter_subsection(const std::string & subsection) +{ + // if necessary create subsection + if(!entries->get_child_optional(get_current_full_path(subsection))) + entries->add_child(get_current_full_path(subsection), boost::property_tree::ptree()); + + // then enter it + subsection_path.push_back(subsection); +} + + + +void +ParameterHandler::leave_subsection() +{ + // assert there is a subsection that + // we may leave + Assert(subsection_path.size() != 0, ExcAlreadyAtTopLevel()); + + if(subsection_path.size() > 0) + subsection_path.pop_back(); +} + + + +std::string +ParameterHandler::get(const std::string & entry_string) const +{ + // assert that the entry is indeed + // declared + if(boost::optional value = entries->get_optional( + get_current_full_path(entry_string) + path_separator + "value")) + return value.get(); + else + { + Assert(false, ExcEntryUndeclared(entry_string)); + return ""; + } +} + + + +std::string +ParameterHandler::get(const std::vector & entry_subsection_path, + const std::string & entry_string) const +{ + // assert that the entry is indeed + // declared + if(boost::optional value = entries->get_optional( + get_current_full_path(entry_subsection_path, entry_string) + path_separator + "value")) + return value.get(); + else + { + Assert(false, + ExcEntryUndeclared( + demangle(get_current_full_path(entry_subsection_path, entry_string)))); + return ""; + } +} + + + +long int +ParameterHandler::get_integer(const std::string & entry_string) const +{ + try + { + return Utilities::string_to_int(get(entry_string)); + } + catch(...) + { + AssertThrow(false, + ExcMessage("Can't convert the parameter value <" + get(entry_string) + + "> for entry <" + entry_string + "> to an integer.")); + return 0; + } +} + + + +long int +ParameterHandler::get_integer(const std::vector & entry_subsection_path, + const std::string & entry_string) const +{ + try + { + return Utilities::string_to_int(get(entry_subsection_path, entry_string)); + } + catch(...) + { + AssertThrow(false, + ExcMessage("Can't convert the parameter value <" + + get(entry_subsection_path, entry_string) + "> for entry <" + + demangle(get_current_full_path(entry_subsection_path, entry_string)) + + "> to an integer.")); + return 0; + } +} + + + +double +ParameterHandler::get_double(const std::string & entry_string) const +{ + try + { + return Utilities::string_to_double(get(entry_string)); + } + catch(...) + { + AssertThrow(false, + ExcMessage("Can't convert the parameter value <" + get(entry_string) + + "> for entry <" + entry_string + "> to a double precision variable.")); + return 0; + } +} + + + +double +ParameterHandler::get_double(const std::vector & entry_subsection_path, + const std::string & entry_string) const +{ + try + { + return Utilities::string_to_double(get(entry_subsection_path, entry_string)); + } + catch(...) + { + AssertThrow(false, + ExcMessage("Can't convert the parameter value <" + + get(entry_subsection_path, entry_string) + "> for entry <" + + demangle(get_current_full_path(entry_subsection_path, entry_string)) + + "> to a double precision variable.")); + return 0; + } +} + + + +bool +ParameterHandler::get_bool(const std::string & entry_string) const +{ + const std::string s = get(entry_string); + + AssertThrow((s == "true") || (s == "false") || (s == "yes") || (s == "no"), + ExcMessage("Can't convert the parameter value <" + get(entry_string) + + "> for entry <" + entry_string + "> to a boolean.")); + if(s == "true" || s == "yes") + return true; + else + return false; +} + + + +bool +ParameterHandler::get_bool(const std::vector & entry_subsection_path, + const std::string & entry_string) const +{ + const std::string s = get(entry_subsection_path, entry_string); + + AssertThrow((s == "true") || (s == "false") || (s == "yes") || (s == "no"), + ExcMessage("Can't convert the parameter value <" + + get(entry_subsection_path, entry_string) + "> for entry <" + + demangle(get_current_full_path(entry_subsection_path, entry_string)) + + "> to a boolean.")); + if(s == "true" || s == "yes") + return true; + else + return false; +} + + + +void +ParameterHandler::set(const std::string & entry_string, const std::string & new_value) +{ + // resolve aliases before looking up the correct entry + std::string path = get_current_full_path(entry_string); + if(entries->get_optional(path + path_separator + "alias")) + path = get_current_full_path(entries->get(path + path_separator + "alias")); + + // get the node for the entry. if it doesn't exist, then we end up + // in the else-branch below, which asserts that the entry is indeed + // declared + if(entries->get_optional(path + path_separator + "value")) + { + // verify that the new value satisfies the provided pattern + const unsigned int pattern_index = + entries->get(path + path_separator + "pattern"); + AssertThrow(patterns[pattern_index]->match(new_value), + ExcValueDoesNotMatchPattern(new_value, + entries->get(path + path_separator + + "pattern_description"))); + + // then also execute the actions associated with this + // parameter (if any have been provided) + const boost::optional action_indices_as_string = + entries->get_optional(path + path_separator + "actions"); + if(action_indices_as_string) + { + std::vector action_indices = + Utilities::string_to_int(Utilities::split_string_list(action_indices_as_string.get())); + for(const unsigned int index : action_indices) + if(actions.size() >= index + 1) + actions[index](new_value); + } + + // finally write the new value into the database + entries->put(path + path_separator + "value", new_value); + } + else + AssertThrow(false, ExcEntryUndeclared(entry_string)); +} + + +void +ParameterHandler::set(const std::string & entry_string, const char * new_value) +{ + // simply forward + set(entry_string, std::string(new_value)); +} + + +void +ParameterHandler::set(const std::string & entry_string, const double new_value) +{ + std::ostringstream s; + s << std::setprecision(16); + s << new_value; + + // hand this off to the function that + // actually sets the value as a string + set(entry_string, s.str()); +} + + + +void +ParameterHandler::set(const std::string & entry_string, const long int new_value) +{ + std::ostringstream s; + s << new_value; + + // hand this off to the function that + // actually sets the value as a string + set(entry_string, s.str()); +} + + + +void +ParameterHandler::set(const std::string & entry_string, const bool new_value) +{ + // hand this off to the function that + // actually sets the value as a string + set(entry_string, (new_value ? "true" : "false")); +} + + + +std::ostream & +ParameterHandler::print_parameters(std::ostream & out, const OutputStyle style) const +{ + AssertThrow(out, ExcIO()); + + // we'll have to print some text that is padded with spaces; + // set the appropriate fill character, but also make sure that + // we will restore the previous setting (and all other stream + // flags) when we exit this function + boost::io::ios_flags_saver restore_flags(out); + boost::io::basic_ios_fill_saver restore_fill_state(out); + out.fill(' '); + + // we treat XML and JSON is one step via BOOST, whereas all of the others are + // done recursively in our own code. take care of the two special formats + // first + if(style == XML) + { + // call the writer function and exit as there is nothing + // further to do down in this function + // + // XML has a requirement that there can only be one + // single top-level entry, but we may have multiple + // entries and sections. we work around this by + // creating a tree just for this purpose with the + // single top-level node "ParameterHandler" and + // assign the existing tree under it + boost::property_tree::ptree single_node_tree; + single_node_tree.add_child("ParameterHandler", *entries); + + write_xml(out, single_node_tree); + return out; + } + + if(style == JSON) + { + write_json(out, *entries); + return out; + } + + // for all of the other formats, print a preamble: + switch(style) + { + case Text: + out << "# Listing of Parameters" << std::endl << "# ---------------------" << std::endl; + break; + + case LaTeX: + out << "\\subsection{Global parameters}" << std::endl; + out << "\\label{parameters:global}" << std::endl; + out << std::endl << std::endl; + break; + + case Description: + out << "Listing of Parameters:" << std::endl << std::endl; + break; + + case ShortText: + break; + + default: + Assert(false, ExcNotImplemented()); + } + + // dive recursively into the subsections + recursively_print_parameters(std::vector(), // start at the top level + style, + 0, + out); + + return out; +} + + + +void +ParameterHandler::recursively_print_parameters( + const std::vector & target_subsection_path, + const OutputStyle style, + const unsigned int indent_level, + std::ostream & out) const +{ + AssertThrow(out, ExcIO()); + + // this function should not be necessary for XML or JSON output... + Assert((style != XML) && (style != JSON), ExcInternalError()); + + const boost::property_tree::ptree & current_section = + entries->get_child(collate_path_string(target_subsection_path)); + + unsigned int overall_indent_level = indent_level; + + switch(style) + { + case Text: + case ShortText: + { + // first find out the longest entry name to be able to align the + // equal signs to do this loop over all nodes of the current + // tree, select the parameter nodes (and discard sub-tree nodes) + // and take the maximum of their lengths + // + // likewise find the longest actual value string to make sure we + // can align the default and documentation strings + std::size_t longest_name = 0; + std::size_t longest_value = 0; + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == true) + { + longest_name = std::max(longest_name, demangle(p->first).length()); + longest_value = std::max(longest_value, p->second.get("value").length()); + } + + // print entries one by one. make sure they are sorted by using + // the appropriate iterators + bool first_entry = true; + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + { + const std::string value = p->second.get("value"); + + // if there is documentation, then add an empty line + // (unless this is the first entry in a subsection), print + // the documentation, and then the actual entry; break the + // documentation into readable chunks such that the whole + // thing is at most 78 characters wide + if((style == Text) && !p->second.get("documentation").empty()) + { + if(first_entry == false) + out << '\n'; + else + first_entry = false; + + const std::vector doc_lines = + Utilities::break_text_into_lines(p->second.get("documentation"), + 78 - overall_indent_level * 2 - 2); + + for(const auto & doc_line : doc_lines) + out << std::setw(overall_indent_level * 2) << "" + << "# " << doc_line << '\n'; + } + + + + // print name and value of this entry + out << std::setw(overall_indent_level * 2) << "" + << "set " << demangle(p->first) + << std::setw(longest_name - demangle(p->first).length() + 1) << " " + << "= " << value; + + // finally print the default value, but only if it differs + // from the actual value + if((style == Text) && value != p->second.get("default_value")) + { + out << std::setw(longest_value - value.length() + 1) << ' ' << "# "; + out << "default: " << p->second.get("default_value"); + } + + out << '\n'; + } + + break; + } + + case LaTeX: + { + auto escape = [](const std::string & input) { + return Patterns::internal::escape(input, Patterns::PatternBase::LaTeX); + }; + + // if there are any parameters in this section then print them + // as an itemized list + bool parameters_exist_here = false; + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if((is_parameter_node(p->second) == true) || (is_alias_node(p->second) == true)) + { + parameters_exist_here = true; + break; + } + + if(parameters_exist_here) + { + out << "\\begin{itemize}" << '\n'; + + // print entries one by one. make sure they are sorted by + // using the appropriate iterators + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + { + const std::string value = p->second.get("value"); + + // print name + out << "\\item {\\it Parameter name:} {\\tt " << escape(demangle(p->first)) << "}\n" + << "\\phantomsection"; + { + // create label: labels are not to be escaped but mangled + std::string label = "parameters:"; + for(const auto & path : target_subsection_path) + { + label.append(mangle(path)); + label.append("/"); + } + label.append(p->first); + // Backwards-compatibility. Output the label with and + // without escaping whitespace: + if(label.find("_20") != std::string::npos) + out << "\\label{" << Utilities::replace_in_string(label, "_20", " ") << "}\n"; + out << "\\label{" << label << "}\n"; + } + out << "\n\n"; + + out << "\\index[prmindex]{" << escape(demangle(p->first)) << "}\n"; + out << "\\index[prmindexfull]{"; + for(const auto & path : target_subsection_path) + out << escape(path) << "!"; + out << escape(demangle(p->first)) << "}\n"; + + // finally print value and default + out << "{\\it Value:} " << escape(value) << "\n\n" + << '\n' + << "{\\it Default:} " << escape(p->second.get("default_value")) + << "\n\n" + << '\n'; + + // if there is a documenting string, print it as well but + // don't escape to allow formatting/formulas + if(!p->second.get("documentation").empty()) + out << "{\\it Description:} " << p->second.get("documentation") << "\n\n" + << '\n'; + + // also output possible values, do not escape because the + // description internally will use LaTeX formatting + const unsigned int pattern_index = p->second.get("pattern"); + const std::string desc_str = + patterns[pattern_index]->description(Patterns::PatternBase::LaTeX); + out << "{\\it Possible values:} " << desc_str << '\n'; + } + else if(is_alias_node(p->second) == true) + { + const std::string alias = p->second.get("alias"); + + // print name + out << "\\item {\\it Parameter name:} {\\tt " << escape(demangle(p->first)) << "}\n" + << "\\phantomsection"; + { + // create label: labels are not to be escaped but mangled + std::string label = "parameters:"; + for(const auto & path : target_subsection_path) + { + label.append(mangle(path)); + label.append("/"); + } + label.append(p->first); + // Backwards-compatibility. Output the label with and + // without escaping whitespace: + if(label.find("_20") != std::string::npos) + out << "\\label{" << Utilities::replace_in_string(label, "_20", " ") << "}\n"; + out << "\\label{" << label << "}\n"; + } + out << "\n\n"; + + out << "\\index[prmindex]{" << escape(demangle(p->first)) << "}\n"; + out << "\\index[prmindexfull]{"; + for(const auto & path : target_subsection_path) + out << escape(path) << "!"; + out << escape(demangle(p->first)) << "}\n"; + + // finally print alias and indicate if it is deprecated + out << "This parameter is an alias for the parameter ``\\texttt{" << escape(alias) + << "}''." + << (p->second.get("deprecation_status") == "true" ? + " Its use is deprecated." : + "") + << "\n\n" + << '\n'; + } + out << "\\end{itemize}" << '\n'; + } + + break; + } + + case Description: + { + // first find out the longest entry name to be able to align the + // equal signs + std::size_t longest_name = 0; + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == true) + longest_name = std::max(longest_name, demangle(p->first).length()); + + // print entries one by one. make sure they are sorted by using + // the appropriate iterators + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + { + // print name and value + out << std::setw(overall_indent_level * 2) << "" + << "set " << demangle(p->first) + << std::setw(longest_name - demangle(p->first).length() + 1) << " " + << " = "; + + // print possible values: + const unsigned int pattern_index = p->second.get("pattern"); + const std::string full_desc_str = + patterns[pattern_index]->description(Patterns::PatternBase::Text); + const std::vector description_str = + Utilities::break_text_into_lines(full_desc_str, 78 - overall_indent_level * 2 - 2, '|'); + if(description_str.size() > 1) + { + out << '\n'; + for(const auto & description : description_str) + out << std::setw(overall_indent_level * 2 + 6) << "" << description << '\n'; + } + else if(description_str.empty() == false) + out << " " << description_str[0] << '\n'; + else + out << '\n'; + + // if there is a documenting string, print it as well + if(p->second.get("documentation").length() != 0) + out << std::setw(overall_indent_level * 2 + longest_name + 10) << "" + << "(" << p->second.get("documentation") << ")" << '\n'; + } + + break; + } + + default: + Assert(false, ExcNotImplemented()); + } + + + // if there was text before and there are sections to come, put two + // newlines between the last entry and the first subsection + { + unsigned int n_parameters = 0; + unsigned int n_sections = 0; + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == true) + ++n_parameters; + else if(is_alias_node(p->second) == false) + ++n_sections; + + if((style != Description) && (style != ShortText) && (n_parameters != 0) && (n_sections != 0)) + out << "\n\n"; + } + + // now traverse subsections tree, in alphabetical order + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if((is_parameter_node(p->second) == false) && (is_alias_node(p->second) == false)) + { + // first print the subsection header + switch(style) + { + case Text: + case Description: + case ShortText: + out << std::setw(overall_indent_level * 2) << "" + << "subsection " << demangle(p->first) << '\n'; + break; + + case LaTeX: + { + auto escape = [](const std::string & input) { + return Patterns::internal::escape(input, Patterns::PatternBase::LaTeX); + }; + + out << '\n' << "\\subsection{Parameters in section \\tt "; + + // find the path to the current section so that we can + // print it in the \subsection{...} heading + for(const auto & path : target_subsection_path) + out << escape(path) << "/"; + out << escape(demangle(p->first)); + + out << "}" << '\n'; + out << "\\label{parameters:"; + for(const auto & path : target_subsection_path) + out << mangle(path) << "/"; + out << p->first << "}"; + out << '\n'; + + out << '\n'; + break; + } + + default: + Assert(false, ExcNotImplemented()); + } + + // then the contents of the subsection + const std::string subsection = demangle(p->first); + std::vector directory_path = target_subsection_path; + directory_path.emplace_back(subsection); + + recursively_print_parameters(directory_path, style, overall_indent_level + 1, out); + + switch(style) + { + case Text: + // write end of subsection. one blank line after each + // subsection + out << std::setw(overall_indent_level * 2) << "" + << "end" << '\n' + << '\n'; + + // if this is a toplevel subsection, then have two + // newlines + if(overall_indent_level == 0) + out << '\n'; + + break; + + case Description: + break; + + case ShortText: + // write end of subsection. + out << std::setw(overall_indent_level * 2) << "" + << "end" << '\n'; + break; + + case LaTeX: + break; + + default: + Assert(false, ExcNotImplemented()); + } + } +} + + + +// Print a section in the desired style. The styles are separated into +// several verbosity classes depending on the higher bits. +// +// If bit 7 (128) is set, comments are not printed. +// If bit 6 (64) is set, default values after change are not printed. +void +ParameterHandler::print_parameters_section(std::ostream & out, + const OutputStyle style, + const unsigned int indent_level, + const bool include_top_level_elements) +{ + AssertThrow(out, ExcIO()); + + const boost::property_tree::ptree & current_section = entries->get_child(get_current_path()); + + unsigned int overall_indent_level = indent_level; + + switch(style) + { + case XML: + { + if(include_top_level_elements) + { + // call the writer function and exit as there is nothing + // further to do down in this function + // + // XML has a requirement that there can only be one single + // top-level entry, but a section has multiple entries and + // sections. we work around this by creating a tree just for + // this purpose with the single top-level node + // "ParameterHandler" and assign the full path of down to + // the current section under it + boost::property_tree::ptree single_node_tree; + + // if there is no subsection selected, add the whole tree of + // entries, otherwise add a root element and the selected + // subsection under it + if(subsection_path.size() == 0) + { + single_node_tree.add_child("ParameterHandler", *entries); + } + else + { + std::string path("ParameterHandler"); + + single_node_tree.add_child(path, boost::property_tree::ptree()); + + path += path_separator + get_current_path(); + single_node_tree.add_child(path, current_section); + } + + write_xml(out, single_node_tree); + } + else + Assert(false, ExcNotImplemented()); + + break; + } + case Text: + case ShortText: + { + // if there are top level elements to print, do it + if(include_top_level_elements && (subsection_path.size() > 0)) + for(const auto & path : subsection_path) + { + out << std::setw(overall_indent_level * 2) << "" + << "subsection " << demangle(path) << std::endl; + overall_indent_level += 1; + } + + // first find out the longest entry name to be able to align the + // equal signs to do this loop over all nodes of the current + // tree, select the parameter nodes (and discard sub-tree nodes) + // and take the maximum of their lengths + std::size_t longest_name = 0; + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == true) + longest_name = std::max(longest_name, demangle(p->first).length()); + + // likewise find the longest actual value string to make sure we + // can align the default and documentation strings + std::size_t longest_value = 0; + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == true) + longest_value = std::max(longest_value, p->second.get("value").length()); + + + // print entries one by one. make sure they are sorted by using + // the appropriate iterators + bool first_entry = true; + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + { + const std::string value = p->second.get("value"); + + // if there is documentation, then add an empty line + // (unless this is the first entry in a subsection), print + // the documentation, and then the actual entry; break the + // documentation into readable chunks such that the whole + // thing is at most 78 characters wide + if((!(style & 128)) && !p->second.get("documentation").empty()) + { + if(first_entry == false) + out << std::endl; + else + first_entry = false; + + const std::vector doc_lines = + Utilities::break_text_into_lines(p->second.get("documentation"), + 78 - overall_indent_level * 2 - 2); + + for(const auto & doc_line : doc_lines) + out << std::setw(overall_indent_level * 2) << "" + << "# " << doc_line << std::endl; + } + + + + // print name and value of this entry + out << std::setw(overall_indent_level * 2) << "" + << "set " << demangle(p->first) + << std::setw(longest_name - demangle(p->first).length() + 1) << " " + << "= " << value; + + // finally print the default value, but only if it differs + // from the actual value + if((!(style & 64)) && value != p->second.get("default_value")) + { + out << std::setw(longest_value - value.length() + 1) << ' ' << "# "; + out << "default: " << p->second.get("default_value"); + } + + out << std::endl; + } + + break; + } + + case LaTeX: + { + auto escape = [](const std::string & input) { + return Patterns::internal::escape(input, Patterns::PatternBase::LaTeX); + }; + + // if there are any parameters in this section then print them + // as an itemized list + bool parameters_exist_here = false; + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if((is_parameter_node(p->second) == true) || (is_alias_node(p->second) == true)) + { + parameters_exist_here = true; + break; + } + + if(parameters_exist_here) + { + out << "\\begin{itemize}" << std::endl; + + // print entries one by one. make sure they are sorted by + // using the appropriate iterators + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + { + const std::string value = p->second.get("value"); + + // print name + out << "\\item {\\it Parameter name:} {\\tt " << escape(demangle(p->first)) << "}\n" + << "\\phantomsection\\label{parameters:"; + for(const auto & path : subsection_path) + out << mangle(path) << "/"; + out << p->first; + out << "}\n\n" << std::endl; + + out << "\\index[prmindex]{" << escape(demangle(p->first)) << "}\n"; + out << "\\index[prmindexfull]{"; + for(const auto & path : subsection_path) + out << escape(path) << "!"; + out << escape(demangle(p->first)) << "}\n"; + + // finally print value and default + out << "{\\it Value:} " << escape(value) << "\n\n" + << std::endl + << "{\\it Default:} " << escape(p->second.get("default_value")) + << "\n\n" + << std::endl; + + // if there is a documenting string, print it as well + if(!p->second.get("documentation").empty()) + out << "{\\it Description:} " << p->second.get("documentation") << "\n\n" + << std::endl; + + // also output possible values + const unsigned int pattern_index = p->second.get("pattern"); + const std::string desc_str = + patterns[pattern_index]->description(Patterns::PatternBase::LaTeX); + out << "{\\it Possible values:} " << desc_str << std::endl; + } + else if(is_alias_node(p->second) == true) + { + const std::string alias = p->second.get("alias"); + + // print name + out << "\\item {\\it Parameter name:} {\\tt " << escape(demangle(p->first)) << "}\n" + << "\\phantomsection\\label{parameters:"; + for(const auto & path : subsection_path) + out << mangle(path) << "/"; + out << p->first; + out << "}\n\n" << std::endl; + + out << "\\index[prmindex]{" << escape(demangle(p->first)) << "}\n"; + out << "\\index[prmindexfull]{"; + for(const auto & path : subsection_path) + out << escape(path) << "!"; + out << escape(demangle(p->first)) << "}\n"; + + // finally print alias and indicate if it is deprecated + out << "This parameter is an alias for the parameter ``\\texttt{" << escape(alias) + << "}''." + << (p->second.get("deprecation_status") == "true" ? + " Its use is deprecated." : + "") + << "\n\n" + << std::endl; + } + out << "\\end{itemize}" << std::endl; + } + + break; + } + + case Description: + { + // if there are top level elements to print, do it + if(include_top_level_elements && (subsection_path.size() > 0)) + for(const auto & path : subsection_path) + { + out << std::setw(overall_indent_level * 2) << "" + << "subsection " << demangle(path) << std::endl; + overall_indent_level += 1; + }; + + // first find out the longest entry name to be able to align the + // equal signs + std::size_t longest_name = 0; + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == true) + longest_name = std::max(longest_name, demangle(p->first).length()); + + // print entries one by one. make sure they are sorted by using + // the appropriate iterators + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + { + // print name and value + out << std::setw(overall_indent_level * 2) << "" + << "set " << demangle(p->first) + << std::setw(longest_name - demangle(p->first).length() + 1) << " " + << " = "; + + // print possible values: + const unsigned int pattern_index = p->second.get("pattern"); + const std::string full_desc_str = + patterns[pattern_index]->description(Patterns::PatternBase::Text); + const std::vector description_str = + Utilities::break_text_into_lines(full_desc_str, 78 - overall_indent_level * 2 - 2, '|'); + if(description_str.size() > 1) + { + out << std::endl; + for(const auto & description : description_str) + out << std::setw(overall_indent_level * 2 + 6) << "" << description << std::endl; + } + else if(description_str.empty() == false) + out << " " << description_str[0] << std::endl; + else + out << std::endl; + + // if there is a documenting string, print it as well + if(p->second.get("documentation").length() != 0) + out << std::setw(overall_indent_level * 2 + longest_name + 10) << "" + << "(" << p->second.get("documentation") << ")" << std::endl; + } + + break; + } + + default: + Assert(false, ExcNotImplemented()); + } + + + // if there was text before and there are sections to come, put two + // newlines between the last entry and the first subsection + if(style != XML) + { + unsigned int n_parameters = 0; + unsigned int n_sections = 0; + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == true) + ++n_parameters; + else if(is_alias_node(p->second) == false) + ++n_sections; + + if((style != Description) && (!(style & 128)) && (n_parameters != 0) && (n_sections != 0)) + out << std::endl << std::endl; + + // now traverse subsections tree, in alphabetical order + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if((is_parameter_node(p->second) == false) && (is_alias_node(p->second) == false)) + { + // first print the subsection header + switch(style) + { + case Text: + case Description: + case ShortText: + out << std::setw(overall_indent_level * 2) << "" + << "subsection " << demangle(p->first) << std::endl; + break; + case LaTeX: + { + auto escape = [](const std::string & input) { + return Patterns::internal::escape(input, Patterns::PatternBase::LaTeX); + }; + + out << std::endl << "\\subsection{Parameters in section \\tt "; + + // find the path to the current section so that we can + // print it in the \subsection{...} heading + for(const auto & path : subsection_path) + out << escape(path) << "/"; + out << escape(demangle(p->first)); + + out << "}" << std::endl; + out << "\\label{parameters:"; + for(const auto & path : subsection_path) + out << mangle(path) << "/"; + out << p->first << "}"; + out << std::endl; + + out << std::endl; + break; + } + + default: + Assert(false, ExcNotImplemented()); + } + + // then the contents of the subsection + enter_subsection(demangle(p->first)); +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" + print_parameters_section(out, style, overall_indent_level + 1); +# pragma GCC diagnostic pop + + leave_subsection(); + switch(style) + { + case Text: + // write end of subsection. one blank line after each + // subsection + out << std::setw(overall_indent_level * 2) << "" + << "end" << std::endl + << std::endl; + + // if this is a toplevel subsection, then have two + // newlines + if(overall_indent_level == 0) + out << std::endl; + + break; + case Description: + break; + case ShortText: + // write end of subsection. + out << std::setw(overall_indent_level * 2) << "" + << "end" << std::endl; + break; + case LaTeX: + break; + default: + Assert(false, ExcNotImplemented()); + } + } + } + + // close top level elements, if there are any + switch(style) + { + case XML: + case LaTeX: + case Description: + break; + case Text: + case ShortText: + { + if(include_top_level_elements && (subsection_path.size() > 0)) + for(unsigned int i = 0; i < subsection_path.size(); ++i) + { + overall_indent_level -= 1; + out << std::setw(overall_indent_level * 2) << "" + << "end" << std::endl; + } + + break; + } + + default: + Assert(false, ExcNotImplemented()); + } +} + + + +void +ParameterHandler::log_parameters(LogStream & out) +{ + out.push("parameters"); + // dive recursively into the subsections + log_parameters_section(out); + + out.pop(); +} + + + +void +ParameterHandler::log_parameters_section(LogStream & out) +{ + const boost::property_tree::ptree & current_section = entries->get_child(get_current_path()); + + // print entries one by + // one. make sure they are + // sorted by using the + // appropriate iterators + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + out << demangle(p->first) << ": " << p->second.get("value") << std::endl; + + // now transverse subsections tree + // now traverse subsections tree, + // in alphabetical order + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == false) + { + out.push(demangle(p->first)); + enter_subsection(demangle(p->first)); + log_parameters_section(out); + leave_subsection(); + out.pop(); + } +} + + + +void +ParameterHandler::scan_line(std::string line, + const std::string & input_filename, + const unsigned int current_line_n, + const bool skip_undefined) +{ + // save a copy for some error messages + const std::string original_line = line; + + // if there is a comment, delete it + if(line.find('#') != std::string::npos) + line.erase(line.find('#'), std::string::npos); + + // replace \t by space: + while(line.find('\t') != std::string::npos) + line.replace(line.find('\t'), 1, " "); + + // trim start and end: + line = Utilities::trim(line); + + // if line is now empty: leave + if(line.length() == 0) + { + return; + } + // enter subsection + else if(Utilities::match_at_string_start(line, "SUBSECTION ") || + Utilities::match_at_string_start(line, "subsection ")) + { + // delete this prefix + line.erase(0, std::string("subsection").length() + 1); + + const std::string subsection = Utilities::trim(line); + + // check whether subsection exists + AssertThrow(skip_undefined || entries->get_child_optional(get_current_full_path(subsection)), + ExcNoSubsection(current_line_n, + input_filename, + demangle(get_current_full_path(subsection)))); + + // subsection exists + subsection_path.push_back(subsection); + } + // exit subsection + else if(Utilities::match_at_string_start(line, "END") || + Utilities::match_at_string_start(line, "end")) + { + line.erase(0, 3); + while((line.size() > 0) && (std::isspace(line[0]))) + line.erase(0, 1); + + AssertThrow(line.size() == 0, + ExcCannotParseLine(current_line_n, + input_filename, + "Invalid content after 'end' or 'END' statement.")); + AssertThrow(subsection_path.size() != 0, + ExcCannotParseLine(current_line_n, + input_filename, + "There is no subsection to leave here.")); + leave_subsection(); + } + // regular entry + else if(Utilities::match_at_string_start(line, "SET ") || + Utilities::match_at_string_start(line, "set ")) + { + // erase "set" statement + line.erase(0, 4); + + std::string::size_type pos = line.find('='); + AssertThrow(pos != std::string::npos, + ExcCannotParseLine(current_line_n, + input_filename, + "Invalid format of 'set' or 'SET' statement.")); + + // extract entry name and value and trim + std::string entry_name = Utilities::trim(std::string(line, 0, pos)); + std::string entry_value = Utilities::trim(std::string(line, pos + 1, std::string::npos)); + + // resolve aliases before we look up the entry. if necessary, print + // a warning that the alias is deprecated + std::string path = get_current_full_path(entry_name); + if(entries->get_optional(path + path_separator + "alias")) + { + if(entries->get(path + path_separator + "deprecation_status") == "true") + { + std::cerr << "Warning in line <" << current_line_n << "> of file <" << input_filename + << ">: You are using the deprecated spelling <" << entry_name + << "> of the parameter <" + << entries->get(path + path_separator + "alias") << ">." + << std::endl; + } + path = get_current_full_path(entries->get(path + path_separator + "alias")); + } + + // get the node for the entry. if it doesn't exist, then we end up + // in the else-branch below, which asserts that the entry is indeed + // declared + if(entries->get_optional(path + path_separator + "value")) + { + // if entry was declared: does it match the regex? if not, don't enter + // it into the database exception: if it contains characters which + // specify it as a multiple loop entry, then ignore content + if(entry_value.find('{') == std::string::npos) + { + // verify that the new value satisfies the provided pattern + const unsigned int pattern_index = + entries->get(path + path_separator + "pattern"); + AssertThrow(patterns[pattern_index]->match(entry_value), + ExcInvalidEntryForPattern(current_line_n, + input_filename, + entry_value, + entry_name, + patterns[pattern_index]->description())); + + // then also execute the actions associated with this + // parameter (if any have been provided) + const boost::optional action_indices_as_string = + entries->get_optional(path + path_separator + "actions"); + if(action_indices_as_string) + { + std::vector action_indices = + Utilities::string_to_int(Utilities::split_string_list(action_indices_as_string.get())); + for(const unsigned int index : action_indices) + if(actions.size() >= index + 1) + actions[index](entry_value); + } + } + + // finally write the new value into the database + entries->put(path + path_separator + "value", entry_value); + } + else + { + AssertThrow(skip_undefined, + ExcCannotParseLine(current_line_n, + input_filename, + ("No entry with name <" + entry_name + + "> was declared in the current subsection."))); + } + } + // an include statement? + else if(Utilities::match_at_string_start(line, "include ") || + Utilities::match_at_string_start(line, "INCLUDE ")) + { + // erase "include " statement and eliminate spaces + line.erase(0, 7); + while((line.size() > 0) && (line[0] == ' ')) + line.erase(0, 1); + + // the remainder must then be a filename + AssertThrow(line.size() != 0, + ExcCannotParseLine(current_line_n, + input_filename, + "The current line is an 'include' or " + "'INCLUDE' statement, but it does not " + "name a file for inclusion.")); + + std::ifstream input(line.c_str()); + AssertThrow(input, ExcCannotOpenIncludeStatementFile(current_line_n, input_filename, line)); + parse_input(input, line, "", skip_undefined); + } + else + { + AssertThrow(false, + ExcCannotParseLine(current_line_n, + input_filename, + "The line\n\n" + " <" + + original_line + + ">\n\n" + "could not be parsed: please check to " + "make sure that the file is not missing a " + "'set', 'include', 'subsection', or 'end' " + "statement.")); + } +} + + + +std::size_t +ParameterHandler::memory_consumption() const +{ + // TODO: add to this an estimate of the memory in the property_tree + return (MemoryConsumption::memory_consumption(subsection_path)); +} + + + +bool +ParameterHandler::operator==(const ParameterHandler & prm2) const +{ + if(patterns.size() != prm2.patterns.size()) + return false; + + for(unsigned int j = 0; j < patterns.size(); ++j) + if(patterns[j]->description() != prm2.patterns[j]->description()) + return false; + + // instead of walking through all + // the nodes of the two trees + // entries and prm2.entries and + // comparing them for equality, + // simply dump the content of the + // entire structure into a string + // and compare those for equality + std::ostringstream o1, o2; + write_json(o1, *entries); + write_json(o2, *prm2.entries); + return (o1.str() == o2.str()); +} + + + +MultipleParameterLoop::MultipleParameterLoop() : n_branches(0) +{ +} + + + +void +MultipleParameterLoop::parse_input(std::istream & input, + const std::string & filename, + const std::string & last_line, + const bool skip_undefined) +{ + AssertThrow(input, ExcIO()); + + // Note that (to avoid infinite recursion) we have to explicitly call the + // base class version of parse_input and *not* a wrapper (which may be + // virtual and lead us back here) + ParameterHandler::parse_input(input, filename, last_line, skip_undefined); + init_branches(); +} + + + +void +MultipleParameterLoop::loop(MultipleParameterLoop::UserClass & uc) +{ + for(unsigned int run_no = 0; run_no < n_branches; ++run_no) + { + // give create_new one-based numbers + uc.create_new(run_no + 1); + fill_entry_values(run_no); + uc.run(*this); + } +} + + + +void +MultipleParameterLoop::init_branches() +{ + multiple_choices.clear(); + init_branches_current_section(); + + // split up different values + for(auto & multiple_choice : multiple_choices) + multiple_choice.split_different_values(); + + // finally calculate number of branches + n_branches = 1; + for(const auto & multiple_choice : multiple_choices) + if(multiple_choice.type == Entry::variant) + n_branches *= multiple_choice.different_values.size(); + + // check whether array entries have the correct + // number of entries + for(const auto & multiple_choice : multiple_choices) + if(multiple_choice.type == Entry::array) + if(multiple_choice.different_values.size() != n_branches) + std::cerr << " The entry value" << std::endl + << " " << multiple_choice.entry_value << std::endl + << " for the entry named" << std::endl + << " " << multiple_choice.entry_name << std::endl + << " does not have the right number of entries for the " << std::endl + << " " << n_branches << " variant runs that will be performed." + << std::endl; + + + // do a first run on filling the values to + // check for the conformance with the regexp + // (later on, this will be lost in the whole + // other output) + for(unsigned int i = 0; i < n_branches; ++i) + fill_entry_values(i); +} + + + +void +MultipleParameterLoop::init_branches_current_section() +{ + const boost::property_tree::ptree & current_section = entries->get_child(get_current_path()); + + // check all entries in the present + // subsection whether they are + // multiple entries + // + // we loop over entries in sorted + // order to guarantee backward + // compatibility to an earlier + // implementation + for(boost::property_tree::ptree::const_assoc_iterator p = current_section.ordered_begin(); + p != current_section.not_found(); + ++p) + if(is_parameter_node(p->second) == true) + { + const std::string value = p->second.get("value"); + if(value.find('{') != std::string::npos) + multiple_choices.emplace_back(subsection_path, demangle(p->first), value); + } + + // then loop over all subsections + for(boost::property_tree::ptree::const_iterator p = current_section.begin(); + p != current_section.end(); + ++p) + if(is_parameter_node(p->second) == false) + { + enter_subsection(demangle(p->first)); + init_branches_current_section(); + leave_subsection(); + } +} + + + +void +MultipleParameterLoop::fill_entry_values(const unsigned int run_no) +{ + unsigned int possibilities = 1; + + std::vector::iterator choice; + for(choice = multiple_choices.begin(); choice != multiple_choices.end(); ++choice) + { + const unsigned int selection = (run_no / possibilities) % choice->different_values.size(); + std::string entry_value; + if(choice->type == Entry::variant) + entry_value = choice->different_values[selection]; + else + { + if(run_no >= choice->different_values.size()) + { + std::cerr << "The given array for entry <" << choice->entry_name + << "> does not contain enough elements! Taking empty string instead." + << std::endl; + entry_value = ""; + } + else + entry_value = choice->different_values[run_no]; + } + + // temporarily enter the + // subsection tree of this + // multiple entry, set the + // value, and get out + // again. the set() operation + // also tests for the + // correctness of the value + // with regard to the pattern + subsection_path.swap(choice->subsection_path); + set(choice->entry_name, entry_value); + subsection_path.swap(choice->subsection_path); + + // move ahead if it was a variant entry + if(choice->type == Entry::variant) + possibilities *= choice->different_values.size(); + } +} + + + +std::size_t +MultipleParameterLoop::memory_consumption() const +{ + std::size_t mem = ParameterHandler::memory_consumption(); + for(const auto & multiple_choice : multiple_choices) + mem += multiple_choice.memory_consumption(); + + return mem; +} + + + +MultipleParameterLoop::Entry::Entry(const std::vector & ssp, + const std::string & Name, + const std::string & Value) + : subsection_path(ssp), entry_name(Name), entry_value(Value), type(Entry::array) +{ +} + + + +void +MultipleParameterLoop::Entry::split_different_values() +{ + // split string into three parts: + // part before the opening "{", + // the selection itself, final + // part after "}" + std::string prefix(entry_value, 0, entry_value.find('{')); + std::string multiple(entry_value, + entry_value.find('{') + 1, + entry_value.rfind('}') - entry_value.find('{') - 1); + std::string postfix(entry_value, entry_value.rfind('}') + 1, std::string::npos); + // if array entry {{..}}: delete inner + // pair of braces + if(multiple[0] == '{') + multiple.erase(0, 1); + if(multiple[multiple.size() - 1] == '}') + multiple.erase(multiple.size() - 1, 1); + // erase leading and trailing spaces + // in multiple + while(std::isspace(multiple[0])) + multiple.erase(0, 1); + while(std::isspace(multiple[multiple.size() - 1])) + multiple.erase(multiple.size() - 1, 1); + + // delete spaces around '|' + while(multiple.find(" |") != std::string::npos) + multiple.replace(multiple.find(" |"), 2, "|"); + while(multiple.find("| ") != std::string::npos) + multiple.replace(multiple.find("| "), 2, "|"); + + while(multiple.find('|') != std::string::npos) + { + different_values.push_back(prefix + std::string(multiple, 0, multiple.find('|')) + postfix); + multiple.erase(0, multiple.find('|') + 1); + } + // make up the last selection ("while" broke + // because there was no '|' any more + different_values.push_back(prefix + multiple + postfix); + // finally check whether this was a variant + // entry ({...}) or an array ({{...}}) + if((entry_value.find("{{") != std::string::npos) && (entry_value.find("}}") != std::string::npos)) + type = Entry::array; + else + type = Entry::variant; +} + + +std::size_t +MultipleParameterLoop::Entry::memory_consumption() const +{ + return (MemoryConsumption::memory_consumption(subsection_path) + + MemoryConsumption::memory_consumption(entry_name) + + MemoryConsumption::memory_consumption(entry_value) + + MemoryConsumption::memory_consumption(different_values) + sizeof(type)); +} + +DEAL_II_NAMESPACE_CLOSE diff --git a/distributedcombigrid/examples/dealii_example/plot_times.sh b/distributedcombigrid/examples/dealii_example/plot_times.sh new file mode 100644 index 000000000..10bcc3277 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/plot_times.sh @@ -0,0 +1,2 @@ +#!/ bin / bash +../../ tools / plot.py timers.json diff --git a/distributedcombigrid/examples/dealii_example/readjsons.py b/distributedcombigrid/examples/dealii_example/readjsons.py new file mode 100644 index 000000000..b7e7d1e71 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/readjsons.py @@ -0,0 +1,936 @@ +import sys +import json +import matplotlib.pyplot as plt +import numpy as np + +times={ + "FE_Q":{ + "1proc":{ + "true":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + }, + "false":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + } + }, + "2proc":{ + "true":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + }, + "false":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + } + }, + "8proc":{ + "true":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + }, + "false":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + } + }, + "16proc":{ + "true":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + }, + "false":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + } + } + }, + "FE_DGQ":{ + "1proc":{ + "true":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + }, + "false":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + } + } + }, + "FE_Q_ngroup_4":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } +} +dofs={ + "lmin1":[81,225,593,1505,3713,8961,21249,49665], #2 fehlen noch + "lmin2":[125,425,1265,3489,9153,23169,57089,137729], #1 fehlt noch + "lmin3":[729,2673,8289,23489,62849,161537,402945], #1 fehlt noch + "fullgrids":[125,729,4913,35937,274625,2146689] +} +errors={ + "FE_Q":{ + "true":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + }, + "false":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + } + }, + "FE_DGQ":{ + "true":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + }, + "false":{ + "combi10":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + }, + "combi100":{ + "lmin1":[], + "lmin2":[], + "lmin3":[], + "fullgrids":[] + } + } + } +} +DG_dofs={ + "lmin1":[256,832,2432,6656,17408,44032,108544,262144], + "lmin2":[512,2048,6656,19456,53248,139264,352256,868352], + "lmin3":[4096,16384,53248,155648,425984,1114112,2818048], + "fullgrids":[512,4096,32768,262144,2097152,16777216], +} +try: + #loop over all attributes + for method in ["Q","DGQ"]: + for processes in [1,2,8,16]: + if processes>1 and method=="DGQ": + continue + if processes==1: + p="1,1,1" + elif processes==2: + p="1,2,1" + elif processes==8: + p="2,2,2" + elif processes==16: + p="4,2,2" + + for ncombi in [10,100]: + dt=1.0/ncombi + for DO_COMBINE in ["true","false"]: + for lmax in range(2,10): + s_lmax="_"+str(lmax)+","+str(lmax)+","+str(lmax)+"_" + + for lmin in range(1,lmax+1): + if lmin>3: + if lmin7: + continue + s_lmin="_"+str(lmin)+","+str(lmin)+","+str(lmin)+"_" + filepath='timers/helium/FE_'+method+DO_COMBINE+"/p_"+p+"_mi"+s_lmin+"ma"+s_lmax+"ngroup_1_ncombi_"+str(ncombi)+'.json' + try: + with open(filepath) as json_file: + data = json.load(json_file) + corr_comp=data['rank'+str(processes)]["events"]['correct computation'][0] + lvl="" + if lmin==lmax: + lvl="fullgrids" + if lmin<4: + times["FE_"+method][str(processes)+"proc"][DO_COMBINE]["combi"+str(ncombi)]["lmin"+str(lmin)].append(corr_comp[1]-corr_comp[0]) + else: + lvl="lmin"+str(lmin) + times["FE_"+method][str(processes)+"proc"][DO_COMBINE]["combi"+str(ncombi)][lvl].append(corr_comp[1]-corr_comp[0]) + except: + print(filepath) + + +except: + print(times) + +for lmax in range(2,10): + s_lmax="_"+str(lmax)+","+str(lmax)+","+str(lmax)+"_" + + for lmin in range(1,lmax+1): + if lmin>3: + if lmin7: + continue + s_lmin="_"+str(lmin)+","+str(lmin)+","+str(lmin)+"_" + filepath='timers/helium/FE_Qtrue/p_2,2,1_mi'+s_lmin+"ma"+s_lmax+"ngroup_4_ncombi_10.json" + try: + with open(filepath) as json_file: + data = json.load(json_file) + corr_comp=data['rank'+str(processes)]["events"]['correct computation'][0] + lvl="" + if lmin==lmax: + lvl="fullgrids" + if lmin<4: + times["FE_Q_ngroup_4"]["lmin"+str(lmin)].append(corr_comp[1]-corr_comp[0]) + else: + lvl="lmin"+str(lmin) + times["FE_Q_ngroup_4"][lvl].append(corr_comp[1]-corr_comp[0]) + except: + print(filepath) + +#print(times) + +f = open("L2_errors.dat", "r") +processes=1 +for x in f: + if not (x.startswith("Q ") or x.startswith("DGQ ")): + name, val=x.split("=") + method,do_combine,ncombi,min_lvl,max_lvl=name.split("_") + lvl="" + if processes==1: + if min_lvl==max_lvl: + lvl="fullgrids" + if int(min_lvl)<4: + errors["FE_"+method][do_combine]["combi"+str(ncombi)]["lmin"+str(min_lvl)].append(float(val)) + else: + lvl="lmin"+str(min_lvl) + errors["FE_"+method][do_combine]["combi"+str(ncombi)][lvl].append(float(val)) + else: + #compute the number of processes + procs=x.split(", p=")[1] + [one,two, three]=procs.split() + print([one,two, three]) + if int(one)*int(two)*int(three)>1: + processes=2 + else: + processes=1 + +f.close() +#print(errors) + +#plots error vs DOF decay +def CG_error_dof_10_true(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"],errors["FE_Q"]["true"]["combi10"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"],errors["FE_Q"]["true"]["combi10"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(dofs["lmin3"],errors["FE_Q"]["true"]["combi10"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(dofs["fullgrids"],errors["FE_Q"]["true"]["combi10"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=10, with combination") + plt.legend() + plt.savefig("tex_img/CG_error_dof_10_true.png") + plt.close() + +#CG_error_dof_10_true() +#plots error vs DOF decay +def CG_error_dof_100_true(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"],errors["FE_Q"]["true"]["combi100"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"],errors["FE_Q"]["true"]["combi100"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(dofs["lmin3"],errors["FE_Q"]["true"]["combi100"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(dofs["fullgrids"],errors["FE_Q"]["true"]["combi100"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=100, with combination") + plt.legend() + plt.savefig("tex_img/CG_error_dof_100_true.png") + plt.close() + +#CG_error_dof_100_true() +#plots error vs DOF decay +def CG_error_dof_10_false(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"],errors["FE_Q"]["false"]["combi10"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"],errors["FE_Q"]["false"]["combi10"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(dofs["lmin3"],errors["FE_Q"]["false"]["combi10"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(dofs["fullgrids"],errors["FE_Q"]["false"]["combi10"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=10, without combination") + plt.legend() + plt.savefig("tex_img/CG_error_dof_10_false.png") + plt.close() + +#CG_error_dof_10_false() +#plots error vs DOF decay +def CG_error_dof_100_false(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"],errors["FE_Q"]["false"]["combi100"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"],errors["FE_Q"]["false"]["combi100"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(dofs["lmin3"],errors["FE_Q"]["false"]["combi100"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(dofs["fullgrids"],errors["FE_Q"]["false"]["combi100"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=100, without combination") + plt.legend() + plt.savefig("tex_img/CG_error_dof_100_false.png") + plt.close() + +#CG_error_dof_100_false() +#plots error vs Time decay +def CG_error_times_10_true(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin1"],errors["FE_Q"]["true"]["combi10"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin2"],errors["FE_Q"]["true"]["combi10"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin3"],errors["FE_Q"]["true"]["combi10"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["fullgrids"],errors["FE_Q"]["true"]["combi10"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=10, with combination") + plt.legend() + plt.savefig("tex_img/CG_error_times_10_true.png") + plt.close() + +#CG_error_times_10_true() +#plots error vs time decay +def CG_error_times_100_true(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin1"],errors["FE_Q"]["true"]["combi100"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin2"],errors["FE_Q"]["true"]["combi100"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin3"],errors["FE_Q"]["true"]["combi100"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["fullgrids"],errors["FE_Q"]["true"]["combi100"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=100, with combination") + plt.legend() + plt.savefig("tex_img/CG_error_times_100_true.png") + plt.close() + +#CG_error_times_100_true() +#plots error vs time decay +def CG_error_times_10_false(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["lmin1"],errors["FE_Q"]["false"]["combi10"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["lmin2"],errors["FE_Q"]["false"]["combi10"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["lmin3"],errors["FE_Q"]["false"]["combi10"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["fullgrids"],errors["FE_Q"]["false"]["combi10"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=10, without combination") + plt.legend() + plt.savefig("tex_img/CG_error_times_10_false.png") + plt.close() + +#CG_error_times_10_false() +#plots error vs time decay +def CG_error_times_100_false(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin1"],errors["FE_Q"]["false"]["combi100"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin2"],errors["FE_Q"]["false"]["combi100"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin3"],errors["FE_Q"]["false"]["combi100"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["fullgrids"],errors["FE_Q"]["false"]["combi100"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error CG, ncombi=100, without combination") + plt.legend() + plt.savefig("tex_img/CG_error_times_100_false.png") + plt.close() + +#CG_error_times_100_false() +#plots DG error vs time decay +def DG_error_times_10_false(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin1"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin1"][:6], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin2"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin2"][:6], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin3"][:5],errors["FE_DGQ"]["false"]["combi10"]["lmin3"][:5], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["fullgrids"][:6],errors["FE_DGQ"]["false"]["combi10"]["fullgrids"][:6], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error DG, ncombi=10, without combination") + plt.legend() + plt.savefig("tex_img/DG_error_times_10_false.png") + plt.close() + +#DG_error_times_10_false() + +def DG_error_dof_10_false(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(DG_dofs["lmin1"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin1"][:6], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(DG_dofs["lmin2"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin2"][:6], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(DG_dofs["lmin3"][:5],errors["FE_DGQ"]["false"]["combi10"]["lmin3"][:5], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(DG_dofs["fullgrids"][:6],errors["FE_DGQ"]["false"]["combi10"]["fullgrids"][:6], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error DG, ncombi=10, without combination") + plt.legend() + plt.savefig("tex_img/DG_error_dofs_10_false.png") + plt.close() + +#DG_error_dof_10_false() +#plots DG error vs time decay +def DG_error_times_10_true(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin1"],errors["FE_DGQ"]["true"]["combi10"]["lmin1"][:1], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin2"],errors["FE_DGQ"]["true"]["combi10"]["lmin2"][:2], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin3"],errors["FE_DGQ"]["true"]["combi10"]["lmin3"][:1], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["fullgrids"][:5],errors["FE_DGQ"]["true"]["combi10"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error DG, ncombi=10, with combination") + plt.legend() + plt.savefig("tex_img/DG_error_times_10_true.png") + plt.close() + +#DG_error_times_10_true() + +def DG_error_dofs_10_true(): + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel('#DOF') + plt.plot(DG_dofs["lmin1"][:6],errors["FE_DGQ"]["true"]["combi10"]["lmin1"], label="$l_{min}=1$",linestyle='solid', marker='o') + plt.plot(DG_dofs["lmin2"][:6],errors["FE_DGQ"]["true"]["combi10"]["lmin2"], label="$l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(DG_dofs["lmin3"][:5],errors["FE_DGQ"]["true"]["combi10"]["lmin3"], label="$l_{min}=3$",linestyle='dotted', marker='+') + plt.plot(DG_dofs["fullgrids"][:6],errors["FE_DGQ"]["true"]["combi10"]["fullgrids"], label="Fullgrids",linestyle='dashdot', marker='v') + plt.title("Error DG, ncombi=10, with combination") + plt.legend() + plt.savefig("tex_img/DG_error_dofs_10_true.png") + plt.close() + +#DG_error_dofs_10_true() +#plots CG vs DG with combination and ncombi=10 +def CG_vs_DG_10_true_times(): + print("ich vergeleiche CG und DG mit combi und 10 ncombi, times") + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin1"],errors["FE_Q"]["true"]["combi10"]["lmin1"], label="CG, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin2"],errors["FE_Q"]["true"]["combi10"]["lmin2"], label="CG, $l_{min}=2$",linestyle='dashed', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin3"],errors["FE_Q"]["true"]["combi10"]["lmin3"], label="CG, $l_{min}=3$",linestyle='dotted', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["fullgrids"],errors["FE_Q"]["true"]["combi10"]["fullgrids"], label="CG, Fullgrids",linestyle='dashdot', marker='o') + + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin1"][:6],errors["FE_DGQ"]["true"]["combi10"]["lmin1"], label="DG, $l_{min}=1$",linestyle='solid', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin2"][:6],errors["FE_DGQ"]["true"]["combi10"]["lmin2"], label="DG, $l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin3"][:6],errors["FE_DGQ"]["true"]["combi10"]["lmin3"], label="DG, $l_{min}=3$",linestyle='dotted', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi10"]["fullgrids"][:5],errors["FE_DGQ"]["true"]["combi10"]["fullgrids"], label="DG, Fullgrids",linestyle='dashdot', marker='*') + + plt.title("CG vs DG, ncombi=10, with combination") + plt.legend() + plt.savefig("tex_img/CG_vs_DG_error_times_10_true.png") + plt.close() + +#CG_vs_DG_10_true_times() +#plots CG vs DG with combination and ncombi=10 +def CG_vs_DG_10_true_dof(): + print("ich vergeleiche CG und DG mit combi und 10 ncombi, times") + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"],errors["FE_Q"]["true"]["combi10"]["lmin1"], label="CG, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"],errors["FE_Q"]["true"]["combi10"]["lmin2"], label="CG, $l_{min}=2$",linestyle='dashed', marker='o') + plt.plot(dofs["lmin3"],errors["FE_Q"]["true"]["combi10"]["lmin3"], label="CG, $l_{min}=3$",linestyle='dotted', marker='o') + plt.plot(dofs["fullgrids"],errors["FE_Q"]["true"]["combi10"]["fullgrids"], label="CG, Fullgrids",linestyle='dashdot', marker='o') + + plt.plot(dofs["lmin1"][:6],errors["FE_DGQ"]["true"]["combi10"]["lmin1"], label="DG, $l_{min}=1$",linestyle='solid', marker='*') + plt.plot(dofs["lmin2"][:6],errors["FE_DGQ"]["true"]["combi10"]["lmin2"], label="DG, $l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(dofs["lmin3"][:5],errors["FE_DGQ"]["true"]["combi10"]["lmin3"], label="DG, $l_{min}=3$",linestyle='dotted', marker='*') + plt.plot(dofs["fullgrids"][:5],errors["FE_DGQ"]["true"]["combi10"]["fullgrids"], label="DG, Fullgrids",linestyle='dashdot', marker='*') + + plt.title("CG vs DG, ncombi=10, with combination") + plt.legend() + plt.savefig("tex_img/CG_vs_DG_error_dofs_10_true.png") + plt.close() + +#CG_vs_DG_10_true_dof() +#plots CG vs DG with combination and ncombi=100 +def CG_vs_DG_100_true_times(): + print("ich vergeleiche CG und DG mit combi und 100 ncombi, times") + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin1"],errors["FE_Q"]["true"]["combi100"]["lmin1"], label="CG, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin2"],errors["FE_Q"]["true"]["combi100"]["lmin2"], label="CG, $l_{min}=2$",linestyle='dashed', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin3"],errors["FE_Q"]["true"]["combi100"]["lmin3"], label="CG, $l_{min}=3$",linestyle='dotted', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["fullgrids"],errors["FE_Q"]["true"]["combi100"]["fullgrids"], label="CG, Fullgrids",linestyle='dashdot', marker='o') + + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi100"]["lmin1"],errors["FE_DGQ"]["true"]["combi100"]["lmin1"], label="DG, $l_{min}=1$",linestyle='solid', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi100"]["lmin2"],errors["FE_DGQ"]["true"]["combi100"]["lmin2"], label="DG, $l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi100"]["lmin3"],errors["FE_DGQ"]["true"]["combi100"]["lmin3"], label="DG, $l_{min}=3$",linestyle='dotted', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["true"]["combi100"]["fullgrids"],errors["FE_DGQ"]["true"]["combi100"]["fullgrids"], label="DG, Fullgrids",linestyle='dashdot', marker='*') + + plt.title("CG vs DG, ncombi=100, with combination") + plt.legend() + plt.savefig("tex_img/CG_vs_DG_error_times_100_true.png") + plt.close() + +#CG_vs_DG_100_true_times() +#plots CG vs DG with ncombi=10 and no combination +def CG_vs_DG_10_false_times(): + print("ich vergeleiche CG und DG mit combi und 10 ncombi, times") + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["lmin1"][:6],errors["FE_Q"]["false"]["combi10"]["lmin1"], label="CG, $l_{min}=1$",linestyle='solid', marker='o') + #plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["lmin2"],errors["FE_Q"]["false"]["combi10"]["lmin2"], label="CG, $l_{min}=2$",linestyle='dashed', marker='o') + #plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["lmin3"],errors["FE_Q"]["false"]["combi10"]["lmin3"], label="CG, $l_{min}=3$",linestyle='dotted', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["fullgrids"][:6],errors["FE_Q"]["false"]["combi10"]["fullgrids"], label="CG, Fullgrids",linestyle='dashdot', marker='o') + + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin1"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin1"][:6], label="DG, $l_{min}=1$",linestyle='solid', marker='*') + #plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin2"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin2"][:6], label="DG, $l_{min}=2$",linestyle='dashed', marker='*') + #plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin3"][:5],errors["FE_DGQ"]["false"]["combi10"]["lmin3"][:5], label="DG, $l_{min}=3$",linestyle='dotted', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi10"]["fullgrids"][:6],errors["FE_DGQ"]["false"]["combi10"]["fullgrids"][:6], label="DG, Fullgrids",linestyle='dashdot', marker='*') + + plt.title("CG vs DG, ncombi=10, without combination") + plt.legend() + plt.savefig("tex_img/CG_vs_DG_error_times_10_false.png") + plt.close() +#TODO:hier noch n besseren Vergleoich überlegen. +#CG_vs_DG_10_false_times() + +#plots CG vs DG with ncombi=10 and no combination +def CG_vs_DG_10_false_dof(): + print("ich vergeleiche CG und DG mit combi und 10 ncombi, times") + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF'") + plt.plot(dofs["lmin1"],errors["FE_Q"]["false"]["combi10"]["lmin1"], label="CG, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"],errors["FE_Q"]["false"]["combi10"]["lmin2"], label="CG, $l_{min}=2$",linestyle='dashed', marker='o') + plt.plot(dofs["lmin3"],errors["FE_Q"]["false"]["combi10"]["lmin3"], label="CG, $l_{min}=3$",linestyle='dotted', marker='o') + plt.plot(dofs["fullgrids"],errors["FE_Q"]["false"]["combi10"]["fullgrids"], label="CG, Fullgrids",linestyle='dashdot', marker='o') + + plt.plot(DG_dofs["lmin1"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin1"][:6], label="DG, $l_{min}=1$",linestyle='solid', marker='*') + plt.plot(DG_dofs["lmin2"][:6],errors["FE_DGQ"]["false"]["combi10"]["lmin2"][:6], label="DG, $l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(DG_dofs["lmin3"][:5],errors["FE_DGQ"]["false"]["combi10"]["lmin3"][:5], label="DG, $l_{min}=3$",linestyle='dotted', marker='*') + plt.plot(DG_dofs["fullgrids"][:5],errors["FE_DGQ"]["false"]["combi10"]["fullgrids"][:5], label="DG, Fullgrids",linestyle='dashdot', marker='*') + + plt.title("CG vs DG, ncombi=10, without combination") + plt.legend() + plt.savefig("tex_img/CG_vs_DG_error_dof_10_false.png") + plt.close() + +#CG_vs_DG_10_false_dof() +#plots CG vs DG ncombi100 and no combination +def CG_vs_DG_100_false_times(): + print("ich vergeleiche CG und DG mit combi und 100 ncombi, times") + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("Computation time") + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin1"],errors["FE_Q"]["false"]["combi100"]["lmin1"], label="CG, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin2"],errors["FE_Q"]["false"]["combi100"]["lmin2"], label="CG, $l_{min}=2$",linestyle='dashed', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin3"],errors["FE_Q"]["false"]["combi100"]["lmin3"], label="CG, $l_{min}=3$",linestyle='dotted', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi100"]["fullgrids"],errors["FE_Q"]["false"]["combi100"]["fullgrids"], label="CG, Fullgrids",linestyle='dashdot', marker='o') + + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin1"],errors["FE_DGQ"]["false"]["combi100"]["lmin1"], label="DG, $l_{min}=1$",linestyle='solid', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin2"],errors["FE_DGQ"]["false"]["combi100"]["lmin2"], label="DG, $l_{min}=2$",linestyle='dashed', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin3"],errors["FE_DGQ"]["false"]["combi100"]["lmin3"], label="DG, $l_{min}=3$",linestyle='dotted', marker='*') + plt.plot(times["FE_DGQ"]["1proc"]["false"]["combi100"]["fullgrids"],errors["FE_DGQ"]["false"]["combi100"]["fullgrids"], label="DG, Fullgrids",linestyle='dashdot', marker='*') + + plt.title("CG vs DG, ncombi=100, without combination") + plt.legend() + plt.savefig("tex_img/CG_vs_DG_error_times_100_false.png") + plt.close() + +#CG_vs_DG_100_false_times() +#plots CG comparison of combination, ncombi=100 +def CG_combi_compare_100(): + print("ich vergleiche CG_100_false mit CG_100_true") + plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"], + 100*np.divide(np.subtract(errors["FE_Q"]["false"]["combi100"]["lmin1"],errors["FE_Q"]["true"]["combi100"]["lmin1"]),errors["FE_Q"]["false"]["combi100"]["lmin1"]), label="CG without combi, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"], + 100*np.divide(np.subtract(errors["FE_Q"]["false"]["combi100"]["lmin2"],errors["FE_Q"]["true"]["combi100"]["lmin2"]),errors["FE_Q"]["false"]["combi100"]["lmin2"]), label="CG without combi, $l_{min}=2$",linestyle='solid', marker='o') + plt.plot(dofs["lmin3"], + 100*np.divide(np.subtract(errors["FE_Q"]["false"]["combi100"]["lmin3"],errors["FE_Q"]["true"]["combi100"]["lmin3"]),errors["FE_Q"]["false"]["combi100"]["lmin3"]), label="CG without combi, $l_{min}=3$",linestyle='solid', marker='o') + + plt.title("CG combination vs without combination, ncombi=100") + plt.legend() + plt.savefig("tex_img/CG_combi_compare_100_errors.png") + plt.close() + + plt.yscale("log") + plt.xscale("log") + plt.ylabel("relative Time difference") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"], + 100*np.divide(np.subtract(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin1"],times["FE_Q"]["1proc"]["false"]["combi100"]["lmin1"]),times["FE_Q"]["1proc"]["false"]["combi100"]["lmin1"]), label="CG without combi, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"], + 100*np.divide(np.subtract(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin2"],times["FE_Q"]["1proc"]["false"]["combi100"]["lmin2"]),times["FE_Q"]["1proc"]["false"]["combi100"]["lmin2"]), label="CG without combi, $l_{min}=2$",linestyle='solid', marker='o') + plt.plot(dofs["lmin3"], + 100*np.divide(np.subtract(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin3"],times["FE_Q"]["1proc"]["false"]["combi100"]["lmin3"]),times["FE_Q"]["1proc"]["false"]["combi100"]["lmin3"]), label="CG without combi, $l_{min}=3$",linestyle='solid', marker='o') + + plt.title("CG combination vs without combination, ncombi=100") + plt.legend() + plt.savefig("tex_img/CG_combi_compare_100_times.png") + plt.close() + +#CG_combi_compare_100() +#plots CG comparison of combination with ncombi=10 +def CG_combi_compare_10(): + print("ich vergleiche CG_100_false mit CG_10_true") + #plt.yscale("log") + # plt.xscale("log") + # plt.ylabel("Error") + # plt.xlabel("#DOF") + # plt.ylim([0,0.5]) + # plt.plot(dofs["lmin1"], + # np.divide(np.subtract(errors["FE_Q"]["false"]["combi10"]["lmin1"],errors["FE_Q"]["true"]["combi10"]["lmin1"]),errors["FE_Q"]["false"]["combi10"]["lmin1"]), label="$l_{min}=1$",linestyle='dashed', marker='o') + # plt.plot(dofs["lmin2"], + # np.divide(np.subtract(errors["FE_Q"]["false"]["combi10"]["lmin2"],errors["FE_Q"]["true"]["combi10"]["lmin2"]),errors["FE_Q"]["false"]["combi10"]["lmin2"]), label="$l_{min}=2$",linestyle='dotted', marker='*') + # plt.plot(dofs["lmin3"], + # np.divide(np.subtract(errors["FE_Q"]["false"]["combi10"]["lmin3"],errors["FE_Q"]["true"]["combi10"]["lmin3"]),errors["FE_Q"]["false"]["combi10"]["lmin3"]), label="$l_{min}=3$",linestyle='solid', marker='+') + + # plt.title("CG combination vs without combination, ncombi=10") + # plt.legend() + # plt.savefig("tex_img/CG_combi_compare_10_errors.png") + # plt.close() + + # #plt.yscale("log") + # plt.xscale("log") + # plt.ylabel("relative Time difference") + # plt.xlabel("#DOF") + # plt.ylim([-0.01,0.3]) + # plt.plot(dofs["lmin1"], + # np.divide(np.subtract(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin1"],times["FE_Q"]["1proc"]["false"]["combi10"]["lmin1"]),times["FE_Q"]["1proc"]["false"]["combi10"]["lmin1"]), label="$l_{min}=1$",linestyle='dashed', marker='o') + # plt.plot(dofs["lmin2"], + # np.divide(np.subtract(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin2"],times["FE_Q"]["1proc"]["false"]["combi10"]["lmin2"]),times["FE_Q"]["1proc"]["false"]["combi10"]["lmin2"]), label="$l_{min}=2$",linestyle='dotted', marker='*') + # plt.plot(dofs["lmin3"], + # np.divide(np.subtract(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin3"],times["FE_Q"]["1proc"]["false"]["combi10"]["lmin3"]),times["FE_Q"]["1proc"]["false"]["combi10"]["lmin3"]), label="$l_{min}=3$",linestyle='solid', marker='+') + + # plt.title("CG combination vs without combination, ncombi=10") + # plt.legend() + # plt.savefig("tex_img/CG_combi_compare_10_times.png") + # plt.close() + + plt.xscale("log") + plt.yscale("log") + plt.ylabel("approximation error") + plt.xlabel("computation time") + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin1"][:7],errors["FE_Q"]["true"]["combi10"]["lmin1"][:7], label="$l_{min}=1$ with combination",linestyle='dashed', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["lmin1"][:7],errors["FE_Q"]["false"]["combi10"]["lmin1"][:7], label="$l_{min}=1$ without combination",linestyle='dotted', marker='*') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["fullgrids"][:6],errors["FE_Q"]["true"]["combi10"]["fullgrids"][:6], label="Fullgrids with combination",linestyle='dashed', marker='o') + plt.plot(times["FE_Q"]["1proc"]["false"]["combi10"]["fullgrids"][:6],errors["FE_Q"]["false"]["combi10"]["fullgrids"][:6], label="Fullgrids without combination",linestyle='dotted', marker='*') + + plt.title("CG combination vs without combination, ncombi=10") + plt.legend() + plt.savefig("tex_img/CG_combi_compare_10_all.png") + plt.close() + + plt.xscale("log") + plt.yscale("log") + plt.ylabel("approximation error") + plt.xlabel("#Dofs") + plt.plot(dofs["lmin1"][:7],errors["FE_Q"]["true"]["combi10"]["lmin1"][:7], label="$l_{min}=1$ with combination",linestyle='dashed', marker='o') + plt.plot(dofs["lmin1"][:7],errors["FE_Q"]["false"]["combi10"]["lmin1"][:7], label="$l_{min}=1$ without combination",linestyle='dotted', marker='*') + plt.plot(dofs["fullgrids"][:6],errors["FE_Q"]["true"]["combi10"]["fullgrids"][:6], label="Fullgrids with combination",linestyle='dashed', marker='o') + plt.plot(dofs["fullgrids"][:6],errors["FE_Q"]["false"]["combi10"]["fullgrids"][:6], label="Fullgrids without combination",linestyle='dotted', marker='*') + + plt.title("CG combination vs without combination, ncombi=10") + plt.legend() + plt.savefig("tex_img/CG_combi_compare_10_all_dofs.png") + plt.close() + +CG_combi_compare_10() +#plots DG comparison of combination with ncombi=100 +def DG_combi_compare_100(): + print("ich vergleiche DG_100_false mit DG_10_true") + #plt.yscale("log") + plt.ylim([-1,1]) + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + plt.plot(DG_dofs["lmin1"][:6], + np.divide(np.subtract(errors["FE_DGQ"]["false"]["combi100"]["lmin1"][:6],errors["FE_DGQ"]["true"]["combi100"]["lmin1"][:6]),errors["FE_DGQ"]["false"]["combi100"]["lmin1"][:6]), label="DG without combi, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(DG_dofs["lmin2"][:6], + np.divide(np.subtract(errors["FE_DGQ"]["false"]["combi100"]["lmin2"][:6],errors["FE_DGQ"]["true"]["combi100"]["lmin2"][:6]),errors["FE_DGQ"]["false"]["combi100"]["lmin2"][:6]), label="DG without combi, $l_{min}=2$",linestyle='solid', marker='o') + plt.plot(DG_dofs["lmin3"][:5], + np.divide(np.subtract(errors["FE_DGQ"]["false"]["combi100"]["lmin3"][:5],errors["FE_DGQ"]["true"]["combi100"]["lmin3"][:5]),errors["FE_DGQ"]["false"]["combi100"]["lmin3"][:5]), label="DG without combi, $l_{min}=3$",linestyle='solid', marker='o') + + plt.title("DG combination vs without combination, ncombi=100") + plt.legend() + plt.savefig("tex_img/DG_combi_compare_100_errors.png") + plt.close() + + plt.yscale("log") + plt.xscale("log") + plt.ylabel("relative Time difference") + plt.xlabel("#DOF") + # plt.plot(DG_dofs["lmin1"][:6], + # np.divide(np.subtract(times["FE_DGQ"]["1proc"]["true"]["combi100"]["lmin1"][:6],times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin1"][:6]),times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin1"][:6]), label="DG without combi, $l_{min}=1$",linestyle='solid', marker='o') + # plt.plot(DG_dofs["lmin2"][:6], + # np.divide(np.subtract(times["FE_DGQ"]["1proc"]["true"]["combi100"]["lmin2"][:6],times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin2"][:6]),times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin2"][:6]), label="DG without combi, $l_{min}=2$",linestyle='solid', marker='o') + # plt.plot(DG_dofs["lmin3"][:5], + # np.divide(np.subtract(times["FE_DGQ"]["1proc"]["true"]["combi100"]["lmin3"][:5],times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin3"][:5]),times["FE_DGQ"]["1proc"]["false"]["combi100"]["lmin3"][:5]), label="DG without combi, $l_{min}=3$",linestyle='solid', marker='o') + + plt.title("DG combination vs without combination, ncombi=100") + plt.legend() + plt.savefig("tex_img/DG_combi_compare_100_times.png") + plt.close() + +#DG_combi_compare_100() +#plots DG comparison of combination with ncombi=10 +def DG_combi_compare_10(): + print("ich vergleiche DG_10_false mit CG_10_true") + #plt.yscale("log") + plt.xscale("log") + plt.ylabel("Error") + plt.xlabel("#DOF") + #plt.ylim([-100,1]) + print(errors["FE_DGQ"]["false"]["combi10"]["lmin1"]) + plt.plot(dofs["lmin1"][:6], + np.divide(np.subtract(errors["FE_DGQ"]["false"]["combi10"]["lmin1"],errors["FE_DGQ"]["true"]["combi10"]["lmin1"]),errors["FE_DGQ"]["true"]["combi10"]["lmin1"]), label="DG without combi, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"][:6], + np.divide(np.subtract(errors["FE_DGQ"]["false"]["combi10"]["lmin2"],errors["FE_DGQ"]["true"]["combi10"]["lmin2"]),errors["FE_DGQ"]["true"]["combi10"]["lmin2"]), label="DG without combi, $l_{min}=2$",linestyle='solid', marker='o') + plt.plot(dofs["lmin3"][:5], + np.divide(np.subtract(errors["FE_DGQ"]["false"]["combi10"]["lmin3"],errors["FE_DGQ"]["true"]["combi10"]["lmin3"]),errors["FE_DGQ"]["true"]["combi10"]["lmin3"]), label="DG without combi, $l_{min}=3$",linestyle='solid', marker='o') + + plt.title("DG combination vs without combination, ncombi=10") + plt.legend() + plt.savefig("tex_img/DG_combi_compare_10_errors.png") + plt.close() + + #plt.yscale("log") + plt.xscale("log") + plt.ylabel("relative Time difference") + plt.ylim([0,25]) + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"][:6], + 100*np.divide(np.subtract(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin1"],times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin1"]),times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin1"]), label="DG without combi, $l_{min}=1$",linestyle='solid', marker='o') + plt.plot(dofs["lmin2"][:6], + 100*np.divide(np.subtract(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin2"],times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin2"]),times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin2"]), label="DG without combi, $l_{min}=2$",linestyle='solid', marker='o') + plt.plot(dofs["lmin3"][:5], + 100*np.divide(np.subtract(times["FE_DGQ"]["1proc"]["true"]["combi10"]["lmin3"],times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin3"]),times["FE_DGQ"]["1proc"]["false"]["combi10"]["lmin3"]), label="DG without combi, $l_{min}=3$",linestyle='solid', marker='o') + + plt.title("DG combination vs without combination, ncombi=10") + plt.legend() + plt.savefig("tex_img/DG_combi_compare_10_times.png") + plt.close() + + +#DG_combi_compare_10() +def parallelization_speedup(): + print("Ich vergleiche ") + plt.xscale("log") + plt.ylabel("Computation time") + plt.yscale("log") + plt.xlabel("#processes") + plt.plot([1,2,8,16],[times["FE_Q"]["1proc"]["true"]["combi10"]["lmin1"][7],times["FE_Q"]["2proc"]["true"]["combi10"]["lmin1"][7], + times["FE_Q"]["8proc"]["true"]["combi10"]["lmin1"][7],times["FE_Q_ngroup_4"]["lmin1"][4]], + label="$l_{\mathrm{min}}=1, l_{\mathrm{max}}=9$",marker='o', linestyle='dashed') + + plt.plot([1,2,8,16],[times["FE_Q"]["1proc"]["true"]["combi10"]["lmin2"][6],times["FE_Q"]["2proc"]["true"]["combi10"]["lmin2"][6], + times["FE_Q"]["8proc"]["true"]["combi10"]["lmin2"][6],times["FE_Q"]["16proc"]["true"]["combi10"]["lmin2"][6]],label="$l_{\mathrm{min}}=2, l_{\mathrm{max}}=8$",linestyle='solid',marker='+') + + plt.plot([1,2,8,16],[times["FE_Q"]["1proc"]["true"]["combi10"]["fullgrids"][5],times["FE_Q"]["2proc"]["true"]["combi10"]["fullgrids"][5], + times["FE_Q"]["8proc"]["true"]["combi10"]["fullgrids"][5],times["FE_Q"]["16proc"]["true"]["combi10"]["fullgrids"][5]],label="Fullgrid l=7",linestyle='dotted',marker='*') + plt.legend() + plt.xticks([1,2,8,16],[1,2,8,16]) + plt.savefig("tex_img/parallel.png") + plt.close() + +#parallelization_speedup() +#compares ncombi10 to ncombi100 +def CG_dt_compare_true(): + print("Ich bin ein Vergleich zwischen den Zeitschrittweiten. Bringt es mehr zeitschritte zu berechnen oder reichen 10 aus?") + #plt.yscale("log") + # plt.xscale("log") + # plt.ylabel("relative error") + # plt.xlabel("#DOF") + # plt.ylim([0,0.042]) + # plt.yticks([0,0.02,0.04],[0,0.02,0.04]) + # plt.plot(dofs["lmin1"],np.divide(np.subtract(errors["FE_Q"]["true"]["combi10"]["lmin1"],errors["FE_Q"]["true"]["combi100"]["lmin1"]),errors["FE_Q"]["true"]["combi10"]["lmin1"]), label="$l_{min}=1$",linestyle='solid', marker='o') + # plt.plot(dofs["lmin2"],np.divide(np.subtract(errors["FE_Q"]["true"]["combi10"]["lmin2"],errors["FE_Q"]["true"]["combi100"]["lmin2"]),errors["FE_Q"]["true"]["combi10"]["lmin2"]), label="$l_{min}=2$",linestyle='dashed', marker='*') + # plt.plot(dofs["lmin3"][:6],np.divide(np.subtract(errors["FE_Q"]["true"]["combi10"]["lmin3"][:6],errors["FE_Q"]["true"]["combi100"]["lmin3"][:6]),errors["FE_Q"]["true"]["combi10"]["lmin3"][:6]), label="$l_{min}=3$",linestyle='dotted', marker='+') + # #plt.plot(dofs["fullgrids"],np.abs(np.subtract(errors["FE_Q"]["true"]["combi10"]["fullgrids"],errors["FE_Q"]["true"]["combi100"]["fullgrids"])), label="Fullgrids",linestyle='dashdot', marker='v') + # #plt.title("Absolute difference of CG ncombi=10 to CG with ncombi=100, with combination.") + # plt.legend() + # plt.savefig("tex_img/CG_error_dof_compare_true.png") + # plt.close() + # plt.yscale("log") + # plt.xscale("log") + # plt.ylabel("relative time difference") + # plt.xlabel("#DOF") + # plt.yticks([0.3,1,2,3,4],[0.3,1,2,3,4]) + # plt.plot(dofs["lmin1"],np.divide(np.subtract(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin1"],times["FE_Q"]["1proc"]["false"]["combi10"]["lmin1"]),times["FE_Q"]["1proc"]["false"]["combi10"]["lmin1"]), label="$l_{min}=1$",linestyle='solid', marker='o') + # plt.plot(dofs["lmin2"],np.divide(np.subtract(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin2"],times["FE_Q"]["1proc"]["false"]["combi10"]["lmin2"]),times["FE_Q"]["1proc"]["false"]["combi10"]["lmin2"]), label="$l_{min}=2$",linestyle='dashed', marker='*') + # plt.plot(dofs["lmin3"],np.divide(np.subtract(times["FE_Q"]["1proc"]["false"]["combi100"]["lmin3"],times["FE_Q"]["1proc"]["false"]["combi10"]["lmin3"]),times["FE_Q"]["1proc"]["false"]["combi10"]["lmin3"]), label="$l_{min}=3$",linestyle='dotted', marker='+') + # plt.plot(dofs["fullgrids"],np.divide(np.subtract(times["FE_Q"]["1proc"]["false"]["combi100"]["fullgrids"],times["FE_Q"]["1proc"]["false"]["combi10"]["fullgrids"]),times["FE_Q"]["1proc"]["false"]["combi10"]["fullgrids"]), label="Fullgrids",linestyle='dashdot', marker='v') + # #plt.title("Absolute difference of CG ncombi=10 to CG with ncombi=100, without combination.") + # plt.legend() + # plt.savefig("tex_img/CG_times_dof_compare_false.png") + # plt.close() + + plt.xscale("log") + plt.yscale("log") + plt.ylabel("approximation error") + plt.xlabel("computation time") + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["lmin1"][:7],errors["FE_Q"]["true"]["combi10"]["lmin1"][:7], label="$l_{min}=1$ dt=0.1",linestyle='dashed', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["lmin1"][:6],errors["FE_Q"]["true"]["combi100"]["lmin1"][:7], label="$l_{min}=1$ dt=0.01",linestyle='dotted', marker='*') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi10"]["fullgrids"][:6],errors["FE_Q"]["true"]["combi10"]["fullgrids"][:6], label="Fullgrids dt=0.1",linestyle='dashed', marker='o') + plt.plot(times["FE_Q"]["1proc"]["true"]["combi100"]["fullgrids"][:6],errors["FE_Q"]["true"]["combi100"]["fullgrids"][:6], label="Fullgrids dt=0.01",linestyle='dotted', marker='*') + + plt.title("CG combination 10 vs 100 timesteps") + plt.legend() + plt.savefig("tex_img/CG_dt_combi_compare_all.png") + plt.close() + + plt.xscale("log") + plt.yscale("log") + plt.ylabel("approximation error") + plt.xlabel("#DOF") + plt.plot(dofs["lmin1"][:7],errors["FE_Q"]["true"]["combi10"]["lmin1"][:7], label="$l_{min}=1$ dt=0.1",linestyle='dashed', marker='o') + plt.plot(dofs["lmin1"][:6],errors["FE_Q"]["true"]["combi100"]["lmin1"][:7], label="$l_{min}=1$ dt=0.01",linestyle='dotted', marker='*') + plt.plot(dofs["fullgrids"][:6],errors["FE_Q"]["true"]["combi10"]["fullgrids"][:6], label="Fullgrids dt=0.1",linestyle='dashed', marker='o') + plt.plot(dofs["fullgrids"][:6],errors["FE_Q"]["true"]["combi100"]["fullgrids"][:6], label="Fullgrids dt=0.01",linestyle='dotted', marker='*') + + plt.title("CG combination 10 vs 100 timesteps") + plt.legend() + plt.savefig("tex_img/CG_dt_combi_compare_all_dofs.png") + plt.close() + +#CG_dt_compare_true() diff --git a/distributedcombigrid/examples/dealii_example/run.sh b/distributedcombigrid/examples/dealii_example/run.sh new file mode 100755 index 000000000..481d20a6a --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash +. ./test_dg_combi_10.sh +. ./test_dg_nocombi_10.sh +. ./test_dg_combi_100.sh +. ./test_dg_ncombi_100.sh \ No newline at end of file diff --git a/distributedcombigrid/examples/dealii_example/run2.sh b/distributedcombigrid/examples/dealii_example/run2.sh new file mode 100644 index 000000000..3618be92f --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/run2.sh @@ -0,0 +1,3 @@ +rm solution/* +rm deal_config/* +mpirun -np 2 ./dealii_example diff --git a/distributedcombigrid/examples/dealii_example/test.sh b/distributedcombigrid/examples/dealii_example/test.sh new file mode 100644 index 000000000..cf51b7b86 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test.sh @@ -0,0 +1,10 @@ +echo -e "rm solution/* +rm deal_config/* +mpirun -np 2 ./dealii_example" > run2.sh + +#. ./test_cg_nocombi.sh +#. ./test_cg_combi.sh +#. ./test_dg_nocombi.sh +#. ./test_dg_combi.sh + +. ./test_cg_parallel.sh diff --git a/distributedcombigrid/examples/dealii_example/test_cg_combi.sh b/distributedcombigrid/examples/dealii_example/test_cg_combi.sh new file mode 100644 index 000000000..2b55db3ef --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_cg_combi.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam +'''echo "\n CG with combination now ncombi=100 und dt=0.01">> l2_error_combi.dat + +for ((lmax=2;lmax<=6;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_Q \n DO_COMBINE=False \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done''' +echo "\n CG with combination now ncombi=10 und dt=0.1">> l2_error_combi.dat + +for ((lmax=2;lmax<=8;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin6)) + then + continue + fi + fi + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + diff --git a/distributedcombigrid/examples/dealii_example/test_cg_nocombi.sh b/distributedcombigrid/examples/dealii_example/test_cg_nocombi.sh new file mode 100644 index 000000000..a350769e0 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_cg_nocombi.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam + +echo "\n CG without combination now ncombi=100 und dt=0.01">> l2_error_combi.dat + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_Q \n DO_COMBINE=False \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,${lmax}_0.dat" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>1 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=false \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_false10_0.dat" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat Q_false_10_${lmin}_${lmax} CG + + #copy the output from the error file to errors. + done +done +echo "\n CG without combination now ncombi=10 und dt=0.1">> l2_error_combi.dat + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=True \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,${lmax}_0.dat" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>1 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true10_0.dat" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat Q_true_10_${lmin}_${lmax}= CG + + #copy the output from the error file to errors. + done +done + diff --git a/distributedcombigrid/examples/dealii_example/test_cg_nocombi_10.sh b/distributedcombigrid/examples/dealii_example/test_cg_nocombi_10.sh new file mode 100644 index 000000000..888e8bd69 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_cg_nocombi_10.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=False \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,${lmax}_0.dat" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>1 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=false \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_false10_0.dat" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat CG_false_10_${lmin}_${lmax}= CG + + #copy the output from the error file to errors. + done +done diff --git a/distributedcombigrid/examples/dealii_example/test_cg_parallel.sh b/distributedcombigrid/examples/dealii_example/test_cg_parallel.sh new file mode 100644 index 000000000..2a8532c99 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_cg_parallel.sh @@ -0,0 +1,153 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam +echo "\n CG with combination now ncombi=100 und dt=0.01 Parallel">> l2_error_combi.dat +echo -e "rm solution/* +rm deal_config/* +mpirun -np 3 ./dealii_example" > run2.sh + + +for ((lmax=2;lmax<=9;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin6)) + then + continue + fi + fi + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 2 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=false \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 2 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + +echo -e "rm solution/* +rm deal_config/* +mpirun -np 5 ./dealii_example" > run2.sh +for ((lmax=2;lmax<=9;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin6)) + then + continue + fi + fi + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=false \n[application]\ndt=0.1\n \n[manager]\nngroup = 4\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + + +for ((lmax=2;lmax<=9;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin6)) + then + continue + fi + fi + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 4\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + + + +echo -e "rm solution/* +rm deal_config/* +mpirun -np 3 ./dealii_example" > run2.sh +for ((lmax=2;lmax<=9;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin6)) + then + continue + fi + fi + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 2 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 2 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + diff --git a/distributedcombigrid/examples/dealii_example/test_dg_combi.sh b/distributedcombigrid/examples/dealii_example/test_dg_combi.sh new file mode 100644 index 000000000..ec34ecaa7 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_combi.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam +echo "\n DG with combination now ncombi=100 und dt=0.01">> l2_error_combi.dat + +for ((lmax=2;lmax<=6;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=True \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,$lmax.dat5" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=true \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat5" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + +echo "\n DG with combination now ncombi=10 und dt=0.1">> l2_error_combi.dat + +for ((lmax=2;lmax<=6;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=True \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,$lmax.dat5" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat5" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + diff --git a/distributedcombigrid/examples/dealii_example/test_dg_combi2d.sh b/distributedcombigrid/examples/dealii_example/test_dg_combi2d.sh new file mode 100644 index 000000000..312277c79 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_combi2d.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam +echo "\n DG with combination now ncombi=10 und dt=0.1 and 2d">> l2_error_combi.dat + + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=2 \nlmin= $lmax $lmax \nlmax= $lmax $lmax \nleval= $lmax $lmax + p= 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=False \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=2 \nlmin= $lmin $lmin \nlmax=$lmax $lmax \nleval=$lmax $lmax + p= 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,${lmin}_ma_$lmax,${lmax}_ev_$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + diff --git a/distributedcombigrid/examples/dealii_example/test_dg_combi_10.sh b/distributedcombigrid/examples/dealii_example/test_dg_combi_10.sh new file mode 100644 index 000000000..50fb1ec88 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_combi_10.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=True \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level7,7,7_0_1_2_3_4_5_6_7.dat" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=7 7 7 + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_7,7,7_combi_true10_0_1_2_3_4_5_6_7.dat" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat DGQ_true_10_${lmin}_${lmax}= CG + + #copy the output from the error file to errors. + done +done diff --git a/distributedcombigrid/examples/dealii_example/test_dg_combi_100.sh b/distributedcombigrid/examples/dealii_example/test_dg_combi_100.sh new file mode 100644 index 000000000..542663e8c --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_combi_100.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=True \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,${lmax}_0_1_2_3_4_5_6_7.dat" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=true \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true100_0_1_2_3_4_5_6_7.dat" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat DGQ_true_100_${lmin}_${lmax} CG + + #copy the output from the error file to errors. + done +done diff --git a/distributedcombigrid/examples/dealii_example/test_dg_ncombi_100.sh b/distributedcombigrid/examples/dealii_example/test_dg_ncombi_100.sh new file mode 100644 index 000000000..afe5c4aaf --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_ncombi_100.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=False \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,${lmax}_0_1_2_3_4_5_6_7.dat" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=false \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_false100_0_1_2_3_4_5_6_7.dat" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat DGQ_false_100_${lmin}_${lmax} CG + + #copy the output from the error file to errors. + done +done diff --git a/distributedcombigrid/examples/dealii_example/test_dg_nocombi.sh b/distributedcombigrid/examples/dealii_example/test_dg_nocombi.sh new file mode 100644 index 000000000..c6b2ef132 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_nocombi.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam +echo "\n DG without combination now ncombi=100 und dt=0.01">> l2_error_combi.dat + +for ((lmax=5;lmax<=6;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=False \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,$lmax.dat5" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=false \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_false.dat5" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + +echo "\n DG without combination now ncombi=10 und dt=0.1">> l2_error_combi.dat + +for ((lmax=2;lmax<=6;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=False \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,$lmax.dat5" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=false \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_false.dat5" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_combi.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + diff --git a/distributedcombigrid/examples/dealii_example/test_dg_nocombi_10.sh b/distributedcombigrid/examples/dealii_example/test_dg_nocombi_10.sh new file mode 100644 index 000000000..5f3881ee4 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_nocombi_10.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam + +for ((lmax=2;lmax<=7;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=False \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level7,7,7_0_1_2_3_4_5_6_7.dat" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=7 7 7 + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=false \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_7,7,7_combi_false10_0_1_2_3_4_5_6_7.dat" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution L2_errors.dat DGQ_false_10_${lmin}_${lmax}= CG + + #copy the output from the error file to errors. + done +done diff --git a/distributedcombigrid/examples/dealii_example/test_dg_vscg.sh b/distributedcombigrid/examples/dealii_example/test_dg_vscg.sh new file mode 100644 index 000000000..9a78607a9 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/test_dg_vscg.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam +echo "\n DG with combination now ncombi=10 und dt=0.1, e=9">> l2_error_cgdg.dat + +for ((lmax=2;lmax<=4;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_DGQ \n DO_COMBINE=True \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + sh ./run2.sh + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,$lmax.dat5" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat5" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_cgdg.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + +echo "\n CG with combination now ncombi=10 und dt=0.1, e=9">> l2_error_cgdg.dat + +for ((lmax=2;lmax<=4;lmax++)); do + echo "lmax=$lmax" + echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_Q \n DO_COMBINE=True \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=1;lmin<=lmax;lmin ++)); do + if ((lmin>3 )) + then + if ((lmin> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_true.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error_cgdg.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done + diff --git a/distributedcombigrid/examples/dealii_example/testing.sh b/distributedcombigrid/examples/dealii_example/testing.sh new file mode 100644 index 000000000..b3fed1951 --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/testing.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam + + +for ((lmax=2;lmax<=6;lmax++)); do + echo "lmax=$lmax" + #echo -e "[ct] \ndim=3 \nlmin= $lmax $lmax $lmax\nlmax= $lmax $lmax $lmax \nleval= $lmax $lmax $lmax + #p= 1 1 1\nncombi=10 \nFE=FE_DGQ \n DO_COMBINE=True \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam + #sh ./run2.sh + referencesolution="out/FE_Q/exact_solution_level$lmax,$lmax,$lmax.dat0" + for ((lmin=2;lmin<=lmax;lmin ++)); do + if ((lmin==5 )) + then + if ((lmax<=3)) + then + continue + fi + fi + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin= $lmin $lmin $lmin\nlmax=$lmax $lmax $lmax\nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=100 \nFE=FE_Q \n DO_COMBINE=false \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=false" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_false.dat0" + + #now calculate the error + + ../../tools/errorCalc abs $fileOne $referencesolution l2_error.dat ${lmin}_${lmax} + + #copy the output from the error file to errors. + done +done \ No newline at end of file diff --git a/distributedcombigrid/examples/dealii_example/testing_DG.sh b/distributedcombigrid/examples/dealii_example/testing_DG.sh new file mode 100644 index 000000000..d0cbaa52b --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/testing_DG.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +paramfile='ctparam' +log='log' +#create ctparam + +for ((lmax=2;lmax<=6;lmax++)); do + echo -e "[ct] \ndim=3 \nlmin=$lmax $lmax $lmax \nlmax=$lmax $lmax $lmax \nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=1 \n DO_COMBINE=true \nFE=FE_DGQ \n \n[application]\ndt=1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact] \n makeExact=true" > ctparam +#this generates the reference, fine discretized solution +sh ./run2.sh + + + for ((lmin=1;lmin<=lmax;lmin ++)); do + echo "lmin=$lmin" >> log + #create ctparam + echo -e "[ct] \ndim=3 \nlmin=$lmin $lmin $lmin \nlmax=$lmax $lmax $lmax \nleval=$lmax $lmax $lmax + p= 1 1 1\nncombi=10 \nDO_COMBINE=false \nFE=FE_DGQ \n \n[application]\ndt=0.1\n \n[manager]\nngroup = 1\nnprocs = 1 \n [exact]\n makeExact=false" > ctparam + sh ./run2.sh + for i in 0 1 2 3 4 5 6 7; do + fileOne="out/FE_DGQ/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$lmax,$lmax,${lmax}_combi_false.dat$i" + referencesolution="out/FE_DGQ/exact_solution_level$lmax,$lmax,$lmax.dat$i" + #now calculate the error + ../../tools/errorCalc abs $referencesolution $fileOne l2_error_DG.dat ${lmin}_${lmax}_$i + done + #copy the output from the error file to errors. + done +done \ No newline at end of file diff --git a/distributedcombigrid/examples/dealii_example/testing_ncombi.sh b/distributedcombigrid/examples/dealii_example/testing_ncombi.sh new file mode 100644 index 000000000..a664a19ce --- /dev/null +++ b/distributedcombigrid/examples/dealii_example/testing_ncombi.sh @@ -0,0 +1,29 @@ +leval=5 +paramfile='ctparam' +errors='errors.txt' +log='log' +#create ctparam +ncombi=100 + for ((lmax=4;lmax<=5;lmax++)); do + for ((lmin=3;lmin<=lmax;lmin ++)); do + if (($lmax==$lmin || $lmax==5)) + then + continue + + fi + #create ctparam + dt=$((1 /ncombi)) + echo -e "[ct] \ndim=3 \nlmin=$lmin $lmin $lmin \nlmax=$lmax $lmax $lmax \nleval=$leval $leval $leval + p= 1 1 1\nncombi=$ncombi \nFE=FE_Q \n DO_COMBINE=true \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1" > ctparam + sh ./run2.sh + fileOne="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$leval,$leval,${leval}_combi_true.dat0" + echo -e "[ct] \ndim=3 \nlmin=$lmin $lmin $lmin \nlmax=$lmax $lmax $lmax \nleval=$leval $leval $leval + p= 1 1 1\nncombi=$ncombi \nFE=FE_Q \n DO_COMBINE=false \n[application]\ndt=0.01\n \n[manager]\nngroup = 1\nnprocs = 1" > ctparam + sh ./run2.sh + fileTwo="out/FE_Q/csmi_$lmin,$lmin,${lmin}_ma_$lmax,$lmax,${lmax}_ev_$leval,$leval,${leval}_combi_false.dat0" + #now calculate the error + ../../tools/errorCalc abs $fileOne l2_error_combi.dat ${lmin}_${lmax}_$leval + + #copy the output from the error file to errors. + done + done diff --git a/distributedcombigrid/examples/gene_distributed/Makefile b/distributedcombigrid/examples/gene_distributed/Makefile new file mode 100644 index 000000000..56b4ba8b3 --- /dev/null +++ b/distributedcombigrid/examples/gene_distributed/Makefile @@ -0,0 +1,38 @@ +CC=mpicxx +CFLAGS=-std=c++11 -g -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall -fpic -ggdb #-DTIMING + +SGPP_DIR=/home/sgsscratch/goehrims/combi +GLPK_DIR=/home/sgsscratch/goehrims/combi/glpk + +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LDIR=$(LD_SGPP) $(LD_GLPK) +INC=$(INC_SGPP) $(INC_GLPK) + +LIBS=-lsgppdistributedcombigrid -lboost_serialization #-lglpk#-DDEBUG_OUTPUT + +CPP_FILES := $(wildcard src/*.cpp) +OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) + +all: manager lib timing errorCalc + +manager: $(OBJ_FILES) + mpicxx $(CFLAGS) $(LDIR) $(INC) -o $@ $^ $(LIBS) + +obj/%.o: src/%.cpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -c -o $@ $< $(LIBS) + +lib: $(OBJ_FILES) + mpicxx -shared -o lib/libgenetask.so $^ + +timing: tools/timing.c tools/timing.h + mpicxx $(CFLAGS) -c tools/timing.c -o tools/timing.o + +errorCalc: tools/errorCalcNew.cpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -o errorCalc tools/errorCalcNew.cpp $(LIBS) tools/timing.o + +clean: + rm obj/*.o out/* manager lib/* diff --git a/distributedcombigrid/examples/gene_distributed_linear/Makefile b/distributedcombigrid/examples/gene_distributed_linear/Makefile new file mode 100644 index 000000000..7f392e176 --- /dev/null +++ b/distributedcombigrid/examples/gene_distributed_linear/Makefile @@ -0,0 +1,39 @@ +CC=mpicxx +CFLAGS=-std=c++11 -g -fopenmp -Wno-deprecated-declarations -Wno-unused-local-typedefs -Wno-deprecated -Wno-uninitialized -Wall -fpic -ggdb + +SGPP_DIR=/home/sgsscratch/goehrims/combi +GLPK_DIR=/home/sgsscratch/goehrims/combi/glpk + +LD_SGPP=-L$(SGPP_DIR)/lib/sgpp +INC_GLPK=-I$(GLPK_DIR)/include +LD_GLPK=-L$(GLPK_DIR)/lib +INC_SGPP=-I$(SGPP_DIR)/distributedcombigrid/src/ + +LDIR=$(LD_SGPP) $(LD_GLPK) +INC=$(INC_SGPP) $(INC_GLPK) + +LIBS=-lsgppdistributedcombigrid -lboost_serialization #-lglpk #-DDEBUG_OUTPUT + +CPP_FILES := $(wildcard src/*.cpp) +OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) + +all: manager lib timing errorCalc + +manager: $(OBJ_FILES) + mpicxx $(CFLAGS) $(LDIR) $(INC) -o $@ $^ $(LIBS) + +obj/%.o: src/%.cpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -c -o $@ $< $(LIBS) + +lib: $(OBJ_FILES) + mpicxx -shared -o lib/libgenetask.so $^ + +timing: tools/timing.c tools/timing.h + mpicxx $(CFLAGS) -c tools/timing.c -o tools/timing.o + +errorCalc: tools/errorCalcNew.cpp + mpicxx $(CFLAGS) $(LDIR) $(INC) -o errorCalc tools/errorCalcNew.cpp $(LIBS) tools/timing.o + +clean: + rm obj/*.o out/* manager lib/* + diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/combicom/CombiCom.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/combicom/CombiCom.hpp index eac98ef30..f9b06e823 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/combicom/CombiCom.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/combicom/CombiCom.hpp @@ -46,26 +46,26 @@ class CombiCom { static void distributedLocalReduce(DistributedFullGrid& dfg, DistributedSparseGrid& dsg, real coeff); - template - static void distributedLocalReduceNB(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg, real coeff); + // template + // static void distributedLocalReduceNB(DistributedFullGrid& dfg, + // DistributedSparseGrid& dsg, real coeff); - template - static void distributedLocalReduceBlock(DistributedFullGridNonUniform& dfg, - DistributedSparseGrid& dsg, real coeff); + // template + // static void distributedLocalReduceBlock(DistributedFullGridNonUniform& dfg, + // DistributedSparseGrid& dsg, real coeff); - template - static void distributedLocalReduceRed(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg, real coeff); + // template + // static void distributedLocalReduceRed(DistributedFullGrid& dfg, + // DistributedSparseGrid& dsg, real coeff); - template - static void distributedLocalReduceSGR(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg, real coeff); + // template + // static void distributedLocalReduceSGR(DistributedFullGrid& dfg, + // DistributedSparseGrid& dsg, real coeff); - // extract subspaces of dfg from - template - static void distributedLocalScatter(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg); + // // extract subspaces of dfg from + // template + // static void distributedLocalScatter(DistributedFullGrid& dfg, + // DistributedSparseGrid& dsg); template static void distributedGlobalReduce(DistributedSparseGrid& dsg); @@ -74,116 +74,116 @@ class CombiCom { static void distributedGlobalReduce(DistributedSparseGridUniform& dsg); }; -template <> -inline void CombiCom::SGReduce(SGrid& sg, MPI_Comm comm) { - // init all empty subspaces - for (size_t i = 0; i < sg.getSize(); ++i) - if (sg.getDataSize(i) == 0) sg.initHierarchicalSpace(i, 0.0); - - // erzeuge buffer in der größe vom vollen sg - std::vector buf(sg.getCombinedDataSize()); - - // kopiere werte in buffer an richtige stelle - size_t idx(0); - - for (size_t i = 0; i < sg.getSize(); ++i) { - real* data = sg.getData(i); - - for (size_t j = 0; j < sg.getDataSize(i); ++j) { - buf[idx] = data[j]; - ++idx; - } - } - - // mpi allreduce - MPI_Allreduce(MPI_IN_PLACE, &buf[0], static_cast(buf.size()), MPI_DOUBLE, MPI_SUM, comm); - - // kopiere buffer in richtige stelle an sg_tmp - idx = 0; - - for (size_t i = 0; i < sg.getSize(); ++i) { - for (size_t j = 0; j < sg.getDataSize(i); ++j) { - sg.getData(i)[j] = buf[idx]; - ++idx; - } - } -} - -template <> -inline void CombiCom::SGReduce(SGrid& sg, MPI_Comm comm) { - // init all empty subspaces - for (size_t i = 0; i < sg.getSize(); ++i) - if (sg.getDataSize(i) == 0) sg.initHierarchicalSpace(i, 0.0); - - // erzeuge buffer in der größe vom vollen sg - std::vector buf(sg.getCombinedDataSize()); - - // kopiere werte in buffer an richtige stelle - size_t idx(0); - - for (size_t i = 0; i < sg.getSize(); ++i) { - float* data = sg.getData(i); - - for (size_t j = 0; j < sg.getDataSize(i); ++j) { - buf[idx] = data[j]; - ++idx; - } - } - - // mpi allreduce - MPI_Allreduce(MPI_IN_PLACE, &buf[0], static_cast(buf.size()), MPI_FLOAT, MPI_SUM, comm); - - // kopiere buffer in richtige stelle an sg_tmp - idx = 0; - - for (size_t i = 0; i < sg.getSize(); ++i) { - for (size_t j = 0; j < sg.getDataSize(i); ++j) { - sg.getData(i)[j] = buf[idx]; - ++idx; - } - } -} - -template <> -inline void CombiCom::SGReduce >(SGrid >& sg, - MPI_Comm comm) { - int rank; - MPI_Comm_rank(comm, &rank); - std::cout << "rank " << rank << " starting SGreduce" << std::endl; - - // init all empty subspaces - for (size_t i = 0; i < sg.getSize(); ++i) - if (sg.getDataSize(i) == 0) sg.initHierarchicalSpace(i, 0.0); - - // erzeuge buffer in der größe vom vollen sg - std::vector buf(sg.getCombinedDataSize()); - - // kopiere werte in buffer an richtige stelle - size_t idx(0); - - for (size_t i = 0; i < sg.getSize(); ++i) { - for (size_t j = 0; j < sg.getDataSize(i); ++j) { - buf[idx].r = sg.getData(i)[j].real(); - buf[idx].i = sg.getData(i)[j].imag(); - ++idx; - } - } - - // mpi allreduce - MPI_Allreduce(MPI_IN_PLACE, &buf[0], static_cast(buf.size()), MPI_DOUBLE_COMPLEX, MPI_SUM, - comm); - - // kopiere buffer in richtige stelle an sg_tmp - idx = 0; - - for (size_t i = 0; i < sg.getSize(); ++i) { - for (size_t j = 0; j < sg.getDataSize(i); ++j) { - sg.getData(i)[j].real(buf[idx].r); - sg.getData(i)[j].imag(buf[idx].i); - ++idx; - } - } -} +// template <> +// inline void CombiCom::SGReduce(SGrid& sg, MPI_Comm comm) { +// // init all empty subspaces +// for (size_t i = 0; i < sg.getSize(); ++i) +// if (sg.getDataSize(i) == 0) sg.initHierarchicalSpace(i, 0.0); + +// // erzeuge buffer in der größe vom vollen sg +// std::vector buf(sg.getCombinedDataSize()); + +// // kopiere werte in buffer an richtige stelle +// size_t idx(0); + +// for (size_t i = 0; i < sg.getSize(); ++i) { +// real* data = sg.getData(i); + +// for (size_t j = 0; j < sg.getDataSize(i); ++j) { +// buf[idx] = data[j]; +// ++idx; +// } +// } + +// // mpi allreduce +// MPI_Allreduce(MPI_IN_PLACE, &buf[0], static_cast(buf.size()), MPI_DOUBLE, MPI_SUM, comm); + +// // kopiere buffer in richtige stelle an sg_tmp +// idx = 0; + +// for (size_t i = 0; i < sg.getSize(); ++i) { +// for (size_t j = 0; j < sg.getDataSize(i); ++j) { +// sg.getData(i)[j] = buf[idx]; +// ++idx; +// } +// } +// } + +// template <> +// inline void CombiCom::SGReduce(SGrid& sg, MPI_Comm comm) { +// // init all empty subspaces +// for (size_t i = 0; i < sg.getSize(); ++i) +// if (sg.getDataSize(i) == 0) sg.initHierarchicalSpace(i, 0.0); + +// // erzeuge buffer in der größe vom vollen sg +// std::vector buf(sg.getCombinedDataSize()); + +// // kopiere werte in buffer an richtige stelle +// size_t idx(0); + +// for (size_t i = 0; i < sg.getSize(); ++i) { +// float* data = sg.getData(i); + +// for (size_t j = 0; j < sg.getDataSize(i); ++j) { +// buf[idx] = data[j]; +// ++idx; +// } +// } + +// // mpi allreduce +// MPI_Allreduce(MPI_IN_PLACE, &buf[0], static_cast(buf.size()), MPI_FLOAT, MPI_SUM, comm); + +// // kopiere buffer in richtige stelle an sg_tmp +// idx = 0; + +// for (size_t i = 0; i < sg.getSize(); ++i) { +// for (size_t j = 0; j < sg.getDataSize(i); ++j) { +// sg.getData(i)[j] = buf[idx]; +// ++idx; +// } +// } +// } + +// template <> +// inline void CombiCom::SGReduce >(SGrid >& sg, +// MPI_Comm comm) { +// int rank; +// MPI_Comm_rank(comm, &rank); +// std::cout << "rank " << rank << " starting SGreduce" << std::endl; + +// // init all empty subspaces +// for (size_t i = 0; i < sg.getSize(); ++i) +// if (sg.getDataSize(i) == 0) sg.initHierarchicalSpace(i, 0.0); + +// // erzeuge buffer in der größe vom vollen sg +// std::vector buf(sg.getCombinedDataSize()); + +// // kopiere werte in buffer an richtige stelle +// size_t idx(0); + +// for (size_t i = 0; i < sg.getSize(); ++i) { +// for (size_t j = 0; j < sg.getDataSize(i); ++j) { +// buf[idx].r = sg.getData(i)[j].real(); +// buf[idx].i = sg.getData(i)[j].imag(); +// ++idx; +// } +// } + +// // mpi allreduce +// MPI_Allreduce(MPI_IN_PLACE, &buf[0], static_cast(buf.size()), MPI_DOUBLE_COMPLEX, MPI_SUM, +// comm); + +// // kopiere buffer in richtige stelle an sg_tmp +// idx = 0; + +// for (size_t i = 0; i < sg.getSize(); ++i) { +// for (size_t j = 0; j < sg.getDataSize(i); ++j) { +// sg.getData(i)[j].real(buf[idx].r); +// sg.getData(i)[j].imag(buf[idx].i); +// ++idx; +// } +// } +// } template <> inline void CombiCom::FGReduce(FullGrid& fg, RankType r, MPI_Comm comm) { @@ -269,417 +269,417 @@ void CombiCom::FGAllreduce(FullGrid& fg, MPI_Comm comm) { assert(!"this type is not yet implemented"); } -template -void CombiCom::distributedLocalReduce(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg, real coeff) { - assert(dfg.getDimension() == dsg.getDim()); - assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); - assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); - /* todo: check if communicators are equal in the sense that they are a set of the - * same processes. when dfg creates the cartcomm from lcomm, it changes the - * communicator (which is just an int value), so simply comparing the communicators - * is not possible. an easy workaroun could be to additionally store the original comm - * which has been used in the constructor - */ - - // copy data into subspace datastructures - dfg.fillSubspaces(); +// template +// void CombiCom::distributedLocalReduce(DistributedFullGrid& dfg, +// DistributedSparseGrid& dsg, real coeff) { +// assert(dfg.getDimension() == dsg.getDim()); +// assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); +// assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); +// /* todo: check if communicators are equal in the sense that they are a set of the +// * same processes. when dfg creates the cartcomm from lcomm, it changes the +// * communicator (which is just an int value), so simply comparing the communicators +// * is not possible. an easy workaroun could be to additionally store the original comm +// * which has been used in the constructor +// */ + +// // copy data into subspace datastructures +// dfg.fillSubspaces(); - // get a list of all the subspaces in dfg - std::vector dfgSubspacesLevels; - dfg.getSubspacesLevelVectors(dfgSubspacesLevels); +// // get a list of all the subspaces in dfg +// std::vector dfgSubspacesLevels; +// dfg.getSubspacesLevelVectors(dfgSubspacesLevels); - // rank of each process - int rank = dfg.getMpiRank(); +// // rank of each process +// int rank = dfg.getMpiRank(); + +// // loop over all subspaces include in dfg +// // and gather those which are contained in the sparse grid +// for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { +// const LevelVector& gatherL = dfgSubspacesLevels[i]; + +// if (!dsg.isContained(gatherL)) continue; + +// std::vector buf; + +// // index of the current subspace in dsg +// size_t dsgSubID = dsg.getIndex(gatherL); + +// // destination process to store the subspace +// RankType dst = dsg.getRank(dsgSubID); + +// // start timing +// double tstart = MPI_Wtime(); + +// dfg.gatherSubspace(gatherL, dst, buf); + +// // stop timing +// double time = MPI_Wtime() - tstart; + +// // output min, max, avg +// double min, max, sum; +// MPI_Reduce(&time, &min, 1, MPI_DOUBLE, MPI_MIN, dst, dfg.getCommunicator()); +// MPI_Reduce(&time, &max, 1, MPI_DOUBLE, MPI_MAX, dst, dfg.getCommunicator()); +// MPI_Reduce(&time, &sum, 1, MPI_DOUBLE, MPI_SUM, dst, dfg.getCommunicator()); + +// double avg = sum / static_cast(dfg.getCommunicatorSize()); + +// if (rank == dst) { +// std::cout << gatherL << " size = " << buf.size() << " times = " << min << " " << max << " " +// << avg << std::endl; +// } + +// // add the subspace data of dfg to dsg weighted by coeff +// if (rank == dst) { +// // this will only init the subspace if not yet initialized +// dsg.initSubspace(dsgSubID, 0.0); +// FG_ELEMENT* data = dsg.getData(dsgSubID); + +// for (size_t j = 0; j < dsg.getDataSize(dsgSubID); ++j) { +// data[j] = coeff * buf[j]; +// } +// } +// } +// } + +// template +// void CombiCom::distributedLocalReduceRed(DistributedFullGrid& dfg, +// DistributedSparseGrid& dsg, real coeff) { +// assert(dfg.getDimension() == dsg.getDim()); +// assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); +// assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); +// /* todo: check if communicators are equal in the sense that they are a set of the +// * same processes. when dfg creates the cartcomm from lcomm, it changes the +// * communicator (which is just an int value), so simply comparing the communicators +// * is not possible. an easy workaroun could be to additionally store the original comm +// * which has been used in the constructor +// */ + +// // copy data into subspace datastructures +// dfg.fillSubspaces(); + +// // get a list of all the subspaces in dfg +// std::vector dfgSubspacesLevels; +// dfg.getSubspacesLevelVectors(dfgSubspacesLevels); + +// // rank of each process +// int rank = dfg.getMpiRank(); + +// // create buf that can store largest subspace +// std::vector buf(dfg.getMaxSubspaceSize()); + +// // loop over all subspaces include in dfg +// // and gather those which are contained in the sparse grid +// for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { +// const LevelVector& gatherL = dfgSubspacesLevels[i]; + +// if (!dsg.isContained(gatherL)) continue; + +// // index of the current subspace in dsg +// size_t dsgSubID = dsg.getIndex(gatherL); + +// // destination process to store the subspace +// RankType dst = dsg.getRank(dsgSubID); - // loop over all subspaces include in dfg - // and gather those which are contained in the sparse grid - for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { - const LevelVector& gatherL = dfgSubspacesLevels[i]; +// // start timing +// // double tstart = MPI_Wtime(); - if (!dsg.isContained(gatherL)) continue; +// dfg.gatherSubspaceRed(gatherL, dst, buf); - std::vector buf; +// // stop timing +// // double time = MPI_Wtime() - tstart; - // index of the current subspace in dsg - size_t dsgSubID = dsg.getIndex(gatherL); +// // output min, max, avg +// /* +// double min, max, sum; +// MPI_Reduce( &time, &min, 1, MPI_DOUBLE, MPI_MIN, dst, dfg.getCommunicator() ); +// MPI_Reduce( &time, &max, 1, MPI_DOUBLE, MPI_MAX, dst, dfg.getCommunicator() ); +// MPI_Reduce( &time, &sum, 1, MPI_DOUBLE, MPI_SUM, dst, dfg.getCommunicator() ); +// */ - // destination process to store the subspace - RankType dst = dsg.getRank(dsgSubID); +// // double avg = sum / static_cast( dfg.getCommunicatorSize() ); +// /* +// if( rank == dst ){ +// std::cout << gatherL << " size = " << buf.size() +// << " times = " << min << " " << max << " " << avg << std::endl; +// }*/ + +// // add the subspace data of dfg to dsg weighted by coeff +// if (rank == dst) { +// // this will only init the subspace if not yet initialized +// dsg.initSubspace(dsgSubID, 0.0); +// FG_ELEMENT* data = dsg.getData(dsgSubID); + +// for (size_t j = 0; j < dsg.getDataSize(dsgSubID); ++j) { +// data[j] = coeff * buf[j]; +// } +// } +// } +// } + +// template +// void CombiCom::distributedLocalReduceBlock(DistributedFullGridNonUniform& dfg, +// DistributedSparseGrid& dsg, real coeff) { +// // copy data into subspace datastructures +// dfg.fillSubspaces(); + +// // get a list of all the subspaces in dfg +// std::vector dfgSubspacesLevels; +// dfg.getSubspacesLevelVectors(dfgSubspacesLevels); + +// // buffers for send and recvdata, one for each process +// std::vector > senddata(dfg.getCommunicatorSize()); +// std::vector > sendsizes(dfg.getCommunicatorSize()); +// std::vector > sendsubspaces(dfg.getCommunicatorSize()); +// std::vector > recvdata(dfg.getCommunicatorSize()); +// std::vector > recvsizes(dfg.getCommunicatorSize()); +// std::vector > recvsubspaces(dfg.getCommunicatorSize()); + +// // loop over all subspaces include in dfg +// // and gather those which are contained in the sparse grid +// for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { +// const LevelVector& gatherL = dfgSubspacesLevels[i]; + +// if (!dsg.isContained(gatherL)) continue; + +// std::vector buf; + +// // index of the current subspace in dsg +// size_t dsgSubID = dsg.getIndex(gatherL); - // start timing - double tstart = MPI_Wtime(); +// // destination process to store the subspace +// RankType dst = dsg.getRank(dsgSubID); - dfg.gatherSubspace(gatherL, dst, buf); +// // get send and recvdata for this subspace +// dfg.gatherSubspaceBlock(gatherL, dst, senddata, sendsizes, sendsubspaces, recvsizes, +// recvsubspaces); +// } - // stop timing - double time = MPI_Wtime() - tstart; +// // start send and recv operations to all other processes +// std::vector requests; +// size_t totalsendsize(0), totalrecvsize(0); - // output min, max, avg - double min, max, sum; - MPI_Reduce(&time, &min, 1, MPI_DOUBLE, MPI_MIN, dst, dfg.getCommunicator()); - MPI_Reduce(&time, &max, 1, MPI_DOUBLE, MPI_MAX, dst, dfg.getCommunicator()); - MPI_Reduce(&time, &sum, 1, MPI_DOUBLE, MPI_SUM, dst, dfg.getCommunicator()); +// for (int r = 0; r < dfg.getCommunicatorSize(); ++r) { +// MPI_Request sendrequest; +// MPI_Isend(senddata[r].data(), int(senddata[r].size()), MPI_INT, r, 0, dfg.getCommunicator(), +// &sendrequest); +// requests.push_back(sendrequest); - double avg = sum / static_cast(dfg.getCommunicatorSize()); - - if (rank == dst) { - std::cout << gatherL << " size = " << buf.size() << " times = " << min << " " << max << " " - << avg << std::endl; - } - - // add the subspace data of dfg to dsg weighted by coeff - if (rank == dst) { - // this will only init the subspace if not yet initialized - dsg.initSubspace(dsgSubID, 0.0); - FG_ELEMENT* data = dsg.getData(dsgSubID); - - for (size_t j = 0; j < dsg.getDataSize(dsgSubID); ++j) { - data[j] = coeff * buf[j]; - } - } - } -} - -template -void CombiCom::distributedLocalReduceRed(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg, real coeff) { - assert(dfg.getDimension() == dsg.getDim()); - assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); - assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); - /* todo: check if communicators are equal in the sense that they are a set of the - * same processes. when dfg creates the cartcomm from lcomm, it changes the - * communicator (which is just an int value), so simply comparing the communicators - * is not possible. an easy workaroun could be to additionally store the original comm - * which has been used in the constructor - */ +// totalsendsize += senddata[r].size(); - // copy data into subspace datastructures - dfg.fillSubspaces(); +// // calc recv data size +// int rsize = 0; - // get a list of all the subspaces in dfg - std::vector dfgSubspacesLevels; - dfg.getSubspacesLevelVectors(dfgSubspacesLevels); +// for (auto s : recvsizes[r]) rsize += s; - // rank of each process - int rank = dfg.getMpiRank(); +// recvdata[r].resize(rsize); - // create buf that can store largest subspace - std::vector buf(dfg.getMaxSubspaceSize()); +// MPI_Request recvrequest; +// MPI_Irecv(recvdata[r].data(), rsize, MPI_INT, r, 0, dfg.getCommunicator(), &recvrequest); +// requests.push_back(recvrequest); - // loop over all subspaces include in dfg - // and gather those which are contained in the sparse grid - for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { - const LevelVector& gatherL = dfgSubspacesLevels[i]; +// totalrecvsize += rsize; +// } + +// MPI_Waitall(int(requests.size()), &requests[0], MPI_STATUSES_IGNORE); + +// int rank = dfg.getMpiRank(); + +// for (int r = 0; r < dfg.getCommunicatorSize(); ++r) { +// if (r == rank) { +// std::cout << "rank " << rank << " tot send " << totalsendsize << " tot recv " << totalrecvsize +// << std::endl; +// } + +// MPI_Barrier(dfg.getCommunicator()); +// } + +// // todo: for own dsg subspaces -> put togheter subspace data from recvdata +// } - if (!dsg.isContained(gatherL)) continue; +// template +// void CombiCom::distributedLocalReduceNB(DistributedFullGrid& dfg, +// DistributedSparseGrid& dsg, real coeff) { +// assert(dfg.getDimension() == dsg.getDim()); +// assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); +// assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); +// /* todo: check if communicators are equal in the sense that they are a set of the +// * same processes. when dfg creates the cartcomm from lcomm, it changes the +// * communicator (which is just an int value), so simply comparing the communicators +// * is not possible. an easy workaroun could be to additionally store the original comm +// * which has been used in the constructor +// */ - // index of the current subspace in dsg - size_t dsgSubID = dsg.getIndex(gatherL); +// // copy data into subspace datastructures +// dfg.fillSubspaces(); - // destination process to store the subspace - RankType dst = dsg.getRank(dsgSubID); +// // get a list of all the subspaces in dfg +// std::vector dfgSubspacesLevels; +// dfg.getSubspacesLevelVectors(dfgSubspacesLevels); - // start timing - // double tstart = MPI_Wtime(); +// // create buffers for all subspaces, but don't init size +// std::vector > buffers(dfgSubspacesLevels.size()); - dfg.gatherSubspaceRed(gatherL, dst, buf); +// // create storage for all the requests +// std::vector requests; - // stop timing - // double time = MPI_Wtime() - tstart; +// // loop over all subspaces include in dfg +// // and gather those which are contained in the sparse grid +// for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { +// const LevelVector& gatherL = dfgSubspacesLevels[i]; - // output min, max, avg - /* - double min, max, sum; - MPI_Reduce( &time, &min, 1, MPI_DOUBLE, MPI_MIN, dst, dfg.getCommunicator() ); - MPI_Reduce( &time, &max, 1, MPI_DOUBLE, MPI_MAX, dst, dfg.getCommunicator() ); - MPI_Reduce( &time, &sum, 1, MPI_DOUBLE, MPI_SUM, dst, dfg.getCommunicator() ); - */ - - // double avg = sum / static_cast( dfg.getCommunicatorSize() ); - /* - if( rank == dst ){ - std::cout << gatherL << " size = " << buf.size() - << " times = " << min << " " << max << " " << avg << std::endl; - }*/ - - // add the subspace data of dfg to dsg weighted by coeff - if (rank == dst) { - // this will only init the subspace if not yet initialized - dsg.initSubspace(dsgSubID, 0.0); - FG_ELEMENT* data = dsg.getData(dsgSubID); - - for (size_t j = 0; j < dsg.getDataSize(dsgSubID); ++j) { - data[j] = coeff * buf[j]; - } - } - } -} - -template -void CombiCom::distributedLocalReduceBlock(DistributedFullGridNonUniform& dfg, - DistributedSparseGrid& dsg, real coeff) { - // copy data into subspace datastructures - dfg.fillSubspaces(); - - // get a list of all the subspaces in dfg - std::vector dfgSubspacesLevels; - dfg.getSubspacesLevelVectors(dfgSubspacesLevels); - - // buffers for send and recvdata, one for each process - std::vector > senddata(dfg.getCommunicatorSize()); - std::vector > sendsizes(dfg.getCommunicatorSize()); - std::vector > sendsubspaces(dfg.getCommunicatorSize()); - std::vector > recvdata(dfg.getCommunicatorSize()); - std::vector > recvsizes(dfg.getCommunicatorSize()); - std::vector > recvsubspaces(dfg.getCommunicatorSize()); - - // loop over all subspaces include in dfg - // and gather those which are contained in the sparse grid - for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { - const LevelVector& gatherL = dfgSubspacesLevels[i]; - - if (!dsg.isContained(gatherL)) continue; - - std::vector buf; - - // index of the current subspace in dsg - size_t dsgSubID = dsg.getIndex(gatherL); - - // destination process to store the subspace - RankType dst = dsg.getRank(dsgSubID); - - // get send and recvdata for this subspace - dfg.gatherSubspaceBlock(gatherL, dst, senddata, sendsizes, sendsubspaces, recvsizes, - recvsubspaces); - } +// if (!dsg.isContained(gatherL)) continue; - // start send and recv operations to all other processes - std::vector requests; - size_t totalsendsize(0), totalrecvsize(0); +// // get buffer for this subspace +// std::vector& buf = buffers[i]; - for (int r = 0; r < dfg.getCommunicatorSize(); ++r) { - MPI_Request sendrequest; - MPI_Isend(senddata[r].data(), int(senddata[r].size()), MPI_INT, r, 0, dfg.getCommunicator(), - &sendrequest); - requests.push_back(sendrequest); +// // index of the current subspace in dsg +// size_t dsgSubID = dsg.getIndex(gatherL); - totalsendsize += senddata[r].size(); +// // destination process to store the subspace +// RankType dst = dsg.getRank(dsgSubID); - // calc recv data size - int rsize = 0; +// // in request only request for this process are returned +// dfg.gatherSubspaceNB(gatherL, dst, buf, requests); +// } - for (auto s : recvsizes[r]) rsize += s; - - recvdata[r].resize(rsize); - - MPI_Request recvrequest; - MPI_Irecv(recvdata[r].data(), rsize, MPI_INT, r, 0, dfg.getCommunicator(), &recvrequest); - requests.push_back(recvrequest); - - totalrecvsize += rsize; - } - - MPI_Waitall(int(requests.size()), &requests[0], MPI_STATUSES_IGNORE); - - int rank = dfg.getMpiRank(); - - for (int r = 0; r < dfg.getCommunicatorSize(); ++r) { - if (r == rank) { - std::cout << "rank " << rank << " tot send " << totalsendsize << " tot recv " << totalrecvsize - << std::endl; - } - - MPI_Barrier(dfg.getCommunicator()); - } - - // todo: for own dsg subspaces -> put togheter subspace data from recvdata -} - -template -void CombiCom::distributedLocalReduceNB(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg, real coeff) { - assert(dfg.getDimension() == dsg.getDim()); - assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); - assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); - /* todo: check if communicators are equal in the sense that they are a set of the - * same processes. when dfg creates the cartcomm from lcomm, it changes the - * communicator (which is just an int value), so simply comparing the communicators - * is not possible. an easy workaroun could be to additionally store the original comm - * which has been used in the constructor - */ - - // copy data into subspace datastructures - dfg.fillSubspaces(); - - // get a list of all the subspaces in dfg - std::vector dfgSubspacesLevels; - dfg.getSubspacesLevelVectors(dfgSubspacesLevels); - - // create buffers for all subspaces, but don't init size - std::vector > buffers(dfgSubspacesLevels.size()); - - // create storage for all the requests - std::vector requests; - - // loop over all subspaces include in dfg - // and gather those which are contained in the sparse grid - for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { - const LevelVector& gatherL = dfgSubspacesLevels[i]; - - if (!dsg.isContained(gatherL)) continue; - - // get buffer for this subspace - std::vector& buf = buffers[i]; - - // index of the current subspace in dsg - size_t dsgSubID = dsg.getIndex(gatherL); - - // destination process to store the subspace - RankType dst = dsg.getRank(dsgSubID); - - // in request only request for this process are returned - dfg.gatherSubspaceNB(gatherL, dst, buf, requests); - } - - // wait for requests - if (requests.size() > 0) - MPI_Waitall(static_cast(requests.size()), &requests[0], MPI_STATUSES_IGNORE); - - // each process adds the buffers it is responsible for to the corresponding - // subpsace in dsg - for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { - if (buffers[i].size() == 0) continue; - - const LevelVector& gatherL = dfgSubspacesLevels[i]; - - // index of the current subspace in dsg - size_t dsgSubID = dsg.getIndex(gatherL); - - // this will only init the subspace if not yet initialized - dsg.initSubspace(dsgSubID, 0.0); - - FG_ELEMENT* data = dsg.getData(dsgSubID); - - // get buffer for this subspace - std::vector& buf = buffers[i]; - - for (size_t j = 0; j < dsg.getDataSize(dsgSubID); ++j) { - data[j] = coeff * buf[j]; - } - } -} - -template -void CombiCom::distributedLocalReduceSGR(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg, real coeff) { - assert(dfg.getDimension() == dsg.getDim()); - assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); - assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); - /* todo: check if communicators are equal in the sense that they are a set of the - * same processes. when dfg creates the cartcomm from lcomm, it changes the - * communicator (which is just an int value), so simply comparing the communicators - * is not possible. an easy workaroun could be to additionally store the original comm - * which has been used in the constructor - */ - - // get list of subspaces in dfg and sort according to rank - std::vector dfgSubspacesLevels; - dfg.getSubspacesLevelVectors(dfgSubspacesLevels); - - std::vector commonSubspaces; - std::vector commonSubspacesRanks; - std::vector commonSubspacesSizes; - - for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { - const LevelVector& gatherL = dfgSubspacesLevels[i]; - - if (!dsg.isContained(gatherL)) continue; - - commonSubspaces.push_back(gatherL); - commonSubspacesRanks.push_back(dsg.getRank(gatherL)); - commonSubspacesSizes.push_back(dsg.getSubspaceSize(gatherL)); - } - - // create buffer for each rank - std::vector > buffers(dfg.getCommunicatorSize()); - - // for each rank - for (int r = 0; r < dfg.getCommunicatorSize(); ++r) { - std::vector mySubspaces; - std::vector mySizes; - - size_t bsize = 0; - - for (size_t i = 0; i < commonSubspaces.size(); ++i) { - if (commonSubspacesRanks[i] == r) { - mySubspaces.push_back(commonSubspaces[i]); - mySizes.push_back(commonSubspacesSizes[i]); - bsize += commonSubspacesSizes[i]; - } - } - - // resize buffer - buffers[r].resize(bsize, FG_ELEMENT(0)); - - // for each subspace for this rank - // todo: put local data into right position of buffer - - // mpi reduce on buffer - if (dfg.getMpiRank() == r) { - MPI_Reduce(MPI_IN_PLACE, buffers[r].data(), bsize, dfg.getMPIDatatype(), MPI_SUM, r, - dfg.getCommunicator()); - } else { - MPI_Reduce(buffers[r].data(), buffers[r].data(), bsize, dfg.getMPIDatatype(), MPI_SUM, r, - dfg.getCommunicator()); - } - - if (dfg.getMpiRank() != r) buffers[r].resize(0); - } -} - -template -void CombiCom::distributedLocalScatter(DistributedFullGrid& dfg, - DistributedSparseGrid& dsg) { - assert(dfg.getDimension() == dsg.getDim()); - assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); - assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); - /* todo: check if communicators are equal in the sense that they are a set of the - * same processes. when dfg creates the cartcomm from lcomm, it changes the - * communicator (which is just an int value), so simply comparing the communicators - * is not possible. an easy workaroun could be to additionally store the original comm - * which has been used in the constructor - */ - - // get a list of all the subspaces in dfg - std::vector dfgSubspacesLevels; - dfg.getSubspacesLevelVectors(dfgSubspacesLevels); - - // loop over all subspaces include in dfg - // and scatter all sparse grid subspaces contained in dfg those which are contained in the sparse - // grid - for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { - const LevelVector& scatterL = dfgSubspacesLevels[i]; - - if (!dsg.isContained(scatterL)) continue; - - // index of the current subspace in dsg - size_t dsgSubID = dsg.getIndex(scatterL); - - // process that stores the subspace - RankType src = dsg.getRank(dsgSubID); - - const std::vector& buf = dsg.getDataVector(dsgSubID); - - dfg.scatterSubspace(scatterL, src, buf); - } - - // copy data back into dfg - dfg.writeBackSubspaces(); - - // clear subspace containers and release memory - dfg.clearSubspaces(); -} +// // wait for requests +// if (requests.size() > 0) +// MPI_Waitall(static_cast(requests.size()), &requests[0], MPI_STATUSES_IGNORE); + +// // each process adds the buffers it is responsible for to the corresponding +// // subpsace in dsg +// for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { +// if (buffers[i].size() == 0) continue; + +// const LevelVector& gatherL = dfgSubspacesLevels[i]; + +// // index of the current subspace in dsg +// size_t dsgSubID = dsg.getIndex(gatherL); + +// // this will only init the subspace if not yet initialized +// dsg.initSubspace(dsgSubID, 0.0); + +// FG_ELEMENT* data = dsg.getData(dsgSubID); + +// // get buffer for this subspace +// std::vector& buf = buffers[i]; + +// for (size_t j = 0; j < dsg.getDataSize(dsgSubID); ++j) { +// data[j] = coeff * buf[j]; +// } +// } +// } + +// template +// void CombiCom::distributedLocalReduceSGR(DistributedFullGrid& dfg, +// DistributedSparseGrid& dsg, real coeff) { +// assert(dfg.getDimension() == dsg.getDim()); +// assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); +// assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); +// /* todo: check if communicators are equal in the sense that they are a set of the +// * same processes. when dfg creates the cartcomm from lcomm, it changes the +// * communicator (which is just an int value), so simply comparing the communicators +// * is not possible. an easy workaroun could be to additionally store the original comm +// * which has been used in the constructor +// */ + +// // get list of subspaces in dfg and sort according to rank +// std::vector dfgSubspacesLevels; +// dfg.getSubspacesLevelVectors(dfgSubspacesLevels); + +// std::vector commonSubspaces; +// std::vector commonSubspacesRanks; +// std::vector commonSubspacesSizes; + +// for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { +// const LevelVector& gatherL = dfgSubspacesLevels[i]; + +// if (!dsg.isContained(gatherL)) continue; + +// commonSubspaces.push_back(gatherL); +// commonSubspacesRanks.push_back(dsg.getRank(gatherL)); +// commonSubspacesSizes.push_back(dsg.getSubspaceSize(gatherL)); +// } + +// // create buffer for each rank +// std::vector > buffers(dfg.getCommunicatorSize()); + +// // for each rank +// for (int r = 0; r < dfg.getCommunicatorSize(); ++r) { +// std::vector mySubspaces; +// std::vector mySizes; + +// size_t bsize = 0; + +// for (size_t i = 0; i < commonSubspaces.size(); ++i) { +// if (commonSubspacesRanks[i] == r) { +// mySubspaces.push_back(commonSubspaces[i]); +// mySizes.push_back(commonSubspacesSizes[i]); +// bsize += commonSubspacesSizes[i]; +// } +// } + +// // resize buffer +// buffers[r].resize(bsize, FG_ELEMENT(0)); + +// // for each subspace for this rank +// // todo: put local data into right position of buffer + +// // mpi reduce on buffer +// if (dfg.getMpiRank() == r) { +// MPI_Reduce(MPI_IN_PLACE, buffers[r].data(), bsize, dfg.getMPIDatatype(), MPI_SUM, r, +// dfg.getCommunicator()); +// } else { +// MPI_Reduce(buffers[r].data(), buffers[r].data(), bsize, dfg.getMPIDatatype(), MPI_SUM, r, +// dfg.getCommunicator()); +// } + +// if (dfg.getMpiRank() != r) buffers[r].resize(0); +// } +// } + +// template +// void CombiCom::distributedLocalScatter(DistributedFullGrid& dfg, +// DistributedSparseGrid& dsg) { +// assert(dfg.getDimension() == dsg.getDim()); +// assert(dfg.returnBoundaryFlags() == dsg.getBoundaryVector()); +// assert(dfg.getCommunicatorSize() == dsg.getCommunicatorSize()); +// /* todo: check if communicators are equal in the sense that they are a set of the +// * same processes. when dfg creates the cartcomm from lcomm, it changes the +// * communicator (which is just an int value), so simply comparing the communicators +// * is not possible. an easy workaroun could be to additionally store the original comm +// * which has been used in the constructor +// */ + +// // get a list of all the subspaces in dfg +// std::vector dfgSubspacesLevels; +// dfg.getSubspacesLevelVectors(dfgSubspacesLevels); + +// // loop over all subspaces include in dfg +// // and scatter all sparse grid subspaces contained in dfg those which are contained in the sparse +// // grid +// for (size_t i = 0; i < dfgSubspacesLevels.size(); ++i) { +// const LevelVector& scatterL = dfgSubspacesLevels[i]; + +// if (!dsg.isContained(scatterL)) continue; + +// // index of the current subspace in dsg +// size_t dsgSubID = dsg.getIndex(scatterL); + +// // process that stores the subspace +// RankType src = dsg.getRank(dsgSubID); + +// const std::vector& buf = dsg.getDataVector(dsgSubID); + +// dfg.scatterSubspace(scatterL, src, buf); +// } + +// // copy data back into dfg +// dfg.writeBackSubspaces(); + +// // clear subspace containers and release memory +// dfg.clearSubspaces(); +// } // sparse grid reduce diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.cpp b/distributedcombigrid/src/sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.cpp index e3b4649d7..6622041e7 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.cpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.cpp @@ -52,22 +52,28 @@ void CombiMinMaxScheme::createClassicalCombischeme() { for (size_t i = 0; i < levels_.size(); ++i) { LevelVector& l = levels_[i]; for (LevelType p = 0; p < LevelType(effDim_); ++p) { - if (l >= lmin_ && sum(l) == n_ - p) combiSpaces_.push_back(l); + if (l >= lmin_ && sum(l) == n_ - p) { + combiSpaces_.push_back(l); + std::cout << l[0]<= lmin_ && l1norm <= n_) combiSpaces_.push_back(level); + if (level >= lmin_ && l1norm <= n_) { + combiSpaces_.push_back(level); + + } } computeCombiCoeffsAdaptive(); @@ -92,6 +98,10 @@ void CombiMinMaxScheme::makeFaultTolerant() { } } +/* +returns a levelvector wich has the same value like lmax at the index, where the difference between +lmin and lmax is biggest +*/ LevelVector CombiMinMaxScheme::getLevelMinima() { LevelVector tmp = lmax_ - lmin_; std::vector::iterator result = std::max_element(tmp.begin(), tmp.end()); @@ -122,10 +132,10 @@ void CombiMinMaxScheme::createLevelsRec(DimType dim, LevelType n, DimType d, Lev void CombiMinMaxScheme::computeCombiCoeffsAdaptive() { for (size_t i = 0; i < combiSpaces_.size(); i++) { real coeff = 0; - LevelVector tmp(combiSpaces_[i]); + LevelVector tmp(combiSpaces_[i]); tmp = tmp + LevelVector(dim_, 1); for (auto nbr : combiSpaces_) { - if (nbr >= combiSpaces_[i] && nbr <= tmp) { + if (nbr >= combiSpaces_[i] && nbr <= tmp) { // get the levels which are just one above LevelVector diff = nbr - combiSpaces_[i]; coeff += std::pow(-1.0, std::accumulate(diff.begin(), diff.end(), 0)); } diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp index 517ae3465..e62e3dc6c 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp @@ -171,12 +171,10 @@ class DistributedFullGrid { if ( rank_ == 0 ) { for ( auto subsp : subspaces_ ) { std::cout << subsp.level_ << std::endl; - for ( RankType r = 0; r < size_; ++r ) { // get coords of r in cart comm IndexVector coords( dim_ ); this->getPartitionCoords( r, coords ); - std::cout << "r = " << r << " "; std::cout << "rcoords = " << IndexVector( coords.begin(), coords.end() ) << " "; @@ -545,8 +543,6 @@ class DistributedFullGrid { // it has a part of the left boundary IndexVector coords( dim_ ); getPartitionCoords( coords ); - - if( hasBoundaryPoints_[d] && coords[d] == 0 ){ assert( lowerBounds_[rank_][d] + 1 == 1 ); return 1; @@ -567,7 +563,6 @@ class DistributedFullGrid { // it has a part of the left boundary IndexVector coords( dim_ ); getPartitionCoords( coords ); - if( hasBoundaryPoints_[d] && coords[d] == procs_[d] - 1 ){ return upperBounds_[rank_][d] - 2; } @@ -1292,11 +1287,6 @@ class DistributedFullGrid { std::vector csizes(sizes.rbegin(), sizes.rend()); std::vector csubsizes(subsizes.rbegin(), subsizes.rend()); std::vector cstarts(starts.rbegin(), starts.rend()); - if (!reverseOrderingDFGPartitions) { - csizes.assign(sizes.begin(), sizes.end()); - csubsizes.assign(subsizes.begin(), subsizes.end()); - cstarts.assign(starts.begin(), starts.end()); - } // create subarray view on data MPI_Datatype mysubarray; @@ -1373,11 +1363,6 @@ class DistributedFullGrid { std::vector csizes(sizes.rbegin(), sizes.rend()); std::vector csubsizes(subsizes.rbegin(), subsizes.rend()); std::vector cstarts(starts.rbegin(), starts.rend()); - // if (!reverseOrderingDFGPartitions) { // not sure why, but this produces the wrong results - // csizes.assign(sizes.begin(), sizes.end()); - // csubsizes.assign(subsizes.begin(), subsizes.end()); - // cstarts.assign(starts.begin(), starts.end()); - // } // create subarray view on data MPI_Datatype mysubarray; @@ -1462,11 +1447,6 @@ class DistributedFullGrid { std::vector subsizes(subarrayExtents.rbegin(), subarrayExtents.rend()); // the starts are local indices std::vector starts(subarrayStarts.rbegin(), subarrayStarts.rend()); - // if (!reverseOrderingDFGPartitions) { // not sure why, but this produces the wrong results - // sizes.assign(this->getLocalSizes().begin(), this->getLocalSizes().end()); - // subsizes.assign(subarrayExtents.begin(), subarrayExtents.end()); - // starts.assign(subarrayStarts.begin(), subarrayStarts.end()); - // } // create subarray view on data //todo do this only once per dimension MPI_Datatype mysubarray; @@ -1501,11 +1481,6 @@ class DistributedFullGrid { std::vector subsizes(subarrayExtents.rbegin(), subarrayExtents.rend()); // the starts are local indices std::vector starts(subarrayStarts.rbegin(), subarrayStarts.rend()); - // if (!reverseOrderingDFGPartitions) { // not sure why, but this produces the wrong results - // sizes.assign(this->getLocalSizes().begin(), this->getLocalSizes().end()); - // subsizes.assign(subarrayExtents.begin(), subarrayExtents.end()); - // starts.assign(subarrayStarts.begin(), subarrayStarts.end()); - // } // create subarray view on data MPI_Datatype mysubarray; @@ -1909,12 +1884,10 @@ class DistributedFullGrid { /* for( size_t i=0; igetGlobalLinearIndex( i ); - // get level vector of element i LevelVector lvec(dim_); IndexVector ivec(dim_); this->getGlobalLI( globalI, lvec, ivec ); - assigmentList_[i] = static_cast( this->getSubspaceIndex( lvec ) ); }*/ @@ -2082,4 +2055,4 @@ int DistributedFullGrid::count = 0; } // namespace combigrid -#endif /* DISTRIBUTEDCOMBIFULLGRID_HPP_ */ +#endif /* DISTRIBUTEDCOMBIFULLGRID_HPP_ */ \ No newline at end of file diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp new file mode 100644 index 000000000..92fb48ff5 --- /dev/null +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp @@ -0,0 +1,87 @@ +// @author Theresa Pollinger +#ifndef DISTRIBUTEDCOMBIFULLGRIDENSEMBLE_HPP_ +#define DISTRIBUTEDCOMBIFULLGRIDENSEMBLE_HPP_ + +#include + +#include "sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp" +#include "sgpp/distributedcombigrid/sparsegrid/DistributedSparseGridUniform.hpp" + +// https://simsgs.informatik.uni-stuttgart.de:8444/heenemo/combi/issues/39 + +namespace combigrid { + +enum class MultipleGrids {onlyOne, isHigherNeighbor, isLowerNeighbor}; + +class GridEnumeration{ +public: + // encode the grid number as bits: if bit is set at position d, it means it is the + // "second" point at this position in dimension d. + + static bool isHigherInDimension(char dimension, unsigned long testnumber){ + std::bitset b(testnumber); + return b.test(dimension); + } + + static unsigned long getLowerNeighborInDimension(char dimension, unsigned long testnumber){ + assert(isHigherInDimension(dimension, testnumber)); + std::bitset b(testnumber); + b.set(dimension, false); + return b.to_ulong(); + } + + static unsigned long getUpperNeighborInDimension(char dimension, unsigned long testnumber){ + assert(!isHigherInDimension(dimension, testnumber)); + std::bitset b(testnumber); + b.set(dimension, true); + return b.to_ulong(); + } + + static size_t getNumberOfHigherDimensions(unsigned long testnumber){ + std::bitset b(testnumber); + return b.count(); + } +}; + + +class DFGEnsemble{ +public: + using DFG = DistributedFullGrid; + using DFGPointer = std::unique_ptr; + + template + DFGEnsemble(DimType dimensions, U&&... restDFGArgs){ + size_t numGridsInEnsemble = powerOfTwo[dimensions]; + + ensemble_ = std::vector(); + ensemble_.reserve(numGridsInEnsemble); + for (size_t i=0; i < numGridsInEnsemble; ++i){ + ensemble_.push_back(DFGPointer(new DFG(dimensions, std::forward(restDFGArgs)...))); + } + } + + inline DFG& getDFG(size_t number) { return *(ensemble_[number]); } + + inline const DFG& getDFG(size_t number) const { return *(ensemble_[number]); } + + size_t getNumFullGrids() const { return ensemble_.size(); } + + std::vector getIndicesOfLowerGridsInDimension(DimType dimension){ + std::vector lowerGrids; + for (size_t i = 0; i < this->getNumFullGrids(); ++i) { + if (!GridEnumeration::isHigherInDimension(static_cast(dimension), i)) { + lowerGrids.push_back(i); + } + } + assert(lowerGrids.size() == this->getNumFullGrids()/2); + return lowerGrids; + } + +private: + std::vector ensemble_; +}; // class DFGEnsemble + +} // namespace combigrid + + +#endif /* DISTRIBUTEDCOMBIFULLGRIDENSEMBLE_HPP_ */ diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/hierarchization/DistributedHierarchization.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/hierarchization/DistributedHierarchization.hpp index 7916aad86..911e8a196 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/hierarchization/DistributedHierarchization.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/hierarchization/DistributedHierarchization.hpp @@ -5,6 +5,7 @@ #include "boost/lexical_cast.hpp" #include "sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp" +#include "sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp" #include "sgpp/distributedcombigrid/legacy/combigrid_utils.hpp" #include "sgpp/distributedcombigrid/sparsegrid/DistributedSparseGridUniform.hpp" #include "sgpp/distributedcombigrid/utils/Stats.hpp" @@ -20,6 +21,8 @@ using namespace combigrid; */ namespace { +static int hierCount = 0; + /* The RemoteDataContainer is meant to store a (d-1)-dimensional block of a * d-dimensional DistributedFullGrid. The RemoteDataContainer is d-dimensional, * but has exactly one point in (at least) one dimension. @@ -178,7 +181,7 @@ class RemoteDataContainer { * via a common interface for the data access */ template -class LookupTable { +class LookupTable {//! thread safe? public: /** Constructor * @@ -270,10 +273,6 @@ template static IndexType getFirstIndexOfLevel1d(DistributedFullGrid& dfg, DimType d, LevelType l); -template -static void hierarchizeX(DistributedFullGrid& dfg, - LookupTable& lookupTable); - template static void hierarchizeX_opt_boundary(DistributedFullGrid& dfg, LookupTable& lookupTable); @@ -294,21 +293,30 @@ template inline void dehierarchizeX_opt_boundary_kernel(FG_ELEMENT* data, LevelType lmax, int start, int stride); +// Ensemble variants template -inline void hierarchizeX_inner_boundary_kernel(FG_ELEMENT* data, LevelType lmax, IndexType start, - IndexType idxMax, LevelType level_idxmax); +static void hierarchizeX_opt_boundary_dg(DFGEnsemble& dfg, + std::vector>& lookupTables); template -void hierarchizeN_noboundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim); +static void dehierarchizeX_opt_boundary_dg(DFGEnsemble& dfg, + std::vector>& lookupTables); template -void hierarchizeN_boundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim); +static void hierarchizeX_opt_noboundary_dg(DFGEnsemble& dfg, + std::vector>& lookupTables); template -void dehierarchizeN_opt_boundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim); +inline void hierarchizeX_opt_boundary_kernel_dg(FG_ELEMENT* dataLeft, FG_ELEMENT* dataRight, LevelType lmax, int start, + int stride); + +template +inline void dehierarchizeX_opt_boundary_kernel_dg(FG_ELEMENT* dataLeft, FG_ELEMENT* dataRight, LevelType lmax, int start, + int stride); + +// template +// inline void hierarchizeX_inner_boundary_kernel(FG_ELEMENT* data, LevelType lmax, IndexType start, +// IndexType idxMax, LevelType level_idxmax); // exchange data in dimension dim template @@ -1203,396 +1211,318 @@ static IndexType getFirstIndexOfLevel1d(DistributedFullGrid& dfg, Di return idxMax + 1; } -template -static void hierarchizeX(DistributedFullGrid& dfg, - LookupTable& lookupTable) { - const DimType dim = 0; - - LevelType lmax = dfg.getLevels()[dim]; - IndexType idxMax = dfg.getLastGlobal1dIndex(dim); - IndexType ndim = dfg.getLocalSizes()[dim]; - - FG_ELEMENT zeroVal(0); - - // loop over all xBlocks of local domain -> linearIndex with stride localndim[0] - IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; - - for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { - // get globalIndexVector of block start - // this is the base IndexVector of this block - // only dim component is varied - IndexType linIdxBlockStart = xBlock * ndim; - - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, baseGlobalIndexVector); - assert(localIndexVector[dim] == 0); - - IndexVector globalIndexVectorCenter = baseGlobalIndexVector; - IndexVector globalIndexVectorLeft = baseGlobalIndexVector; - IndexVector globalIndexVectorRight = baseGlobalIndexVector; - - for (LevelType l = lmax; l > 0; --l) { - // get first local point of level and corresponding stride - IndexType firstOfLevel = getFirstIndexOfLevel1d(dfg, dim, l); - IndexType parentOffset = static_cast(std::pow(2, lmax - l)); - IndexType levelStride = parentOffset * 2; - - // loop over points of this level with level specific stride - // as long as inside domain - for (IndexType idx = firstOfLevel; idx <= idxMax; idx += levelStride) { - // compute global index vector of center, left and right predecessor - globalIndexVectorCenter[dim] = idx; - globalIndexVectorLeft[dim] = idx - parentOffset; - globalIndexVectorRight[dim] = idx + parentOffset; - - // translate global indices vector to pointers - if (dfg.returnBoundaryFlags()[dim] == true) { - FG_ELEMENT* center = lookupTable.getData(globalIndexVectorCenter); - FG_ELEMENT* left = lookupTable.getData(globalIndexVectorLeft); - FG_ELEMENT* right = lookupTable.getData(globalIndexVectorRight); - - // do calculation - *center -= 0.5 * (*left + *right); - } else { - FG_ELEMENT* center = lookupTable.getData(globalIndexVectorCenter); - - // when no boundary in this dimension we have to check if - // 1d indices outside domain - FG_ELEMENT* left = &zeroVal; - FG_ELEMENT* right = &zeroVal; - - if (globalIndexVectorLeft[dim] > 0) { - left = lookupTable.getData(globalIndexVectorLeft); - } - - if (globalIndexVectorRight[dim] < dfg.getGlobalSizes()[dim]) { - right = lookupTable.getData(globalIndexVectorRight); - } - - // do calculation - *center -= 0.5 * (*left + *right); - } - } - } - } -} - +/** + * Used + */ template static void hierarchizeX_opt_noboundary(DistributedFullGrid& dfg, LookupTable& lookupTable) { const DimType dim = 0; assert(dfg.returnBoundaryFlags()[dim] == false); - LevelType lmax = dfg.getLevels()[dim]; - IndexType idxMax = dfg.getLastGlobal1dIndex(dim); - IndexType ndim = dfg.getLocalSizes()[dim]; + const LevelType lmax = dfg.getLevels()[dim]; + const IndexType idxMax = dfg.getLastGlobal1dIndex(dim); + const IndexType ndim = dfg.getLocalSizes()[dim]; // size of xBlcok - IndexType xSize = dfg.getLocalSizes()[0]; + const IndexType xSize = dfg.getLocalSizes()[0]; // FG_ELEMENT zeroVal(0); - // create tmp array to store xblock - std::vector tmp(dfg.getGlobalSizes()[dim]); std::vector& localData = dfg.getElementVector(); // loop over all xBlocks of local domain -> linearIndex with stride localndim[0] - IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; - - for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { - // get globalIndexVector of block start - // this is the base IndexVector of this block - // only dim component is varied - IndexType linIdxBlockStart = xBlock * ndim; + const IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; + #pragma omp parallel + { IndexVector localIndexVector(dfg.getDimension()); IndexVector baseGlobalIndexVector(dfg.getDimension()); - dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, baseGlobalIndexVector); - assert(localIndexVector[dim] == 0); + // create tmp array to store xblock + std::vector tmp(dfg.getGlobalSizes()[dim]); + #pragma omp for + for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { + // get globalIndexVector of block start + // this is the base IndexVector of this block + // only dim component is varied + IndexType linIdxBlockStart = xBlock * ndim; + + dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); + dfg.getGlobalVectorIndex(localIndexVector, baseGlobalIndexVector); + assert(localIndexVector[dim] == 0); + + // copy local data to tmp + for (IndexType i = 0; i < xSize; ++i) + tmp[baseGlobalIndexVector[dim] + i] = localData[linIdxBlockStart + i]; + + // copy remote data to tmp + std::vector >& rdcs = lookupTable.getRDCVector(); + IndexVector tmpGlobalIndexVector = baseGlobalIndexVector; + + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + } + } - // copy local data to tmp - for (IndexType i = 0; i < xSize; ++i) - tmp[baseGlobalIndexVector[dim] + i] = localData[linIdxBlockStart + i]; + for (LevelType l = lmax; l > 0; --l) { + // get first local point of level and corresponding stride + IndexType firstOfLevel = getFirstIndexOfLevel1d(dfg, dim, l); + IndexType parentOffset = static_cast(std::pow(2, lmax - l)); + IndexType levelStride = parentOffset * 2; - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); - IndexVector tmpGlobalIndexVector = baseGlobalIndexVector; + // loop over points of this level with level specific stride + // as long as inside domain + for (IndexType idx = firstOfLevel; idx <= idxMax; idx += levelStride) { + // when no boundary in this dimension we have to check if + // 1d indices outside domain + FG_ELEMENT left(0.0); + FG_ELEMENT right(0.0); - if (rdcs.size() > 0) { - // go through remote containers - for (size_t i = 0; i < rdcs.size(); ++i) { - IndexType global1didx = rdcs[i].getKeyIndex(); - tmpGlobalIndexVector[dim] = global1didx; - tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); - } - } + if (idx - parentOffset > 0) { + left = tmp[idx - parentOffset]; + } - for (LevelType l = lmax; l > 0; --l) { - // get first local point of level and corresponding stride - IndexType firstOfLevel = getFirstIndexOfLevel1d(dfg, dim, l); - IndexType parentOffset = static_cast(std::pow(2, lmax - l)); - IndexType levelStride = parentOffset * 2; - - // loop over points of this level with level specific stride - // as long as inside domain - for (IndexType idx = firstOfLevel; idx <= idxMax; idx += levelStride) { - // when no boundary in this dimension we have to check if - // 1d indices outside domain - FG_ELEMENT left(0.0); - FG_ELEMENT right(0.0); - - if (idx - parentOffset > 0) { - left = tmp[idx - parentOffset]; - } + if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { + right = tmp[idx + parentOffset]; + } - if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { - right = tmp[idx + parentOffset]; + // do calculation + FG_ELEMENT buf = -0.5 * left; + tmp[idx] -= 0.5 * right; + tmp[idx] += buf; } - - // do calculation - FG_ELEMENT buf = -0.5 * left; - tmp[idx] -= 0.5 * right; - tmp[idx] += buf; } - } - // copy local data back - for (IndexType i = 0; i < xSize; ++i) - localData[linIdxBlockStart + i] = tmp[baseGlobalIndexVector[dim] + i]; + // copy local data back + for (IndexType i = 0; i < xSize; ++i) + localData[linIdxBlockStart + i] = tmp[baseGlobalIndexVector[dim] + i]; + } } } +/** + * Used + */ template static void dehierarchizeX_opt_noboundary(DistributedFullGrid& dfg, LookupTable& lookupTable) { const DimType dim = 0; assert(dfg.returnBoundaryFlags()[dim] == false); - LevelType lmax = dfg.getLevels()[dim]; - // IndexType idxMax = dfg.getLastGlobal1dIndex(dim); - IndexType ndim = dfg.getLocalSizes()[dim]; + const LevelType lmax = dfg.getLevels()[dim]; + const IndexType ndim = dfg.getLocalSizes()[dim]; // size of xBlcok - IndexType xSize = dfg.getLocalSizes()[0]; - - // FG_ELEMENT zeroVal(0); + const IndexType xSize = dfg.getLocalSizes()[0]; - // create tmp array to store xblock - std::vector tmp(dfg.getGlobalSizes()[dim]); std::vector& localData = dfg.getElementVector(); // loop over all xBlocks of local domain -> linearIndex with stride localndim[0] - IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; - - for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { - // get globalIndexVector of block start - // this is the base IndexVector of this block - // only dim component is varied - IndexType linIdxBlockStart = xBlock * ndim; + const IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; + #pragma omp parallel + { IndexVector localIndexVector(dfg.getDimension()); IndexVector baseGlobalIndexVector(dfg.getDimension()); - dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, baseGlobalIndexVector); - assert(localIndexVector[dim] == 0); - - // copy local data to tmp - for (IndexType i = 0; i < xSize; ++i) - tmp[baseGlobalIndexVector[dim] + i] = localData[linIdxBlockStart + i]; - - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); - IndexVector tmpGlobalIndexVector = baseGlobalIndexVector; - - if (rdcs.size() > 0) { - // go through remote containers + // IndexVector tmpGlobalIndexVector(dfg.getDimension());// replaced by lastindex + IndexType copyBackOffset; + // create tmp array to store xblock + std::vector tmp(dfg.getGlobalSizes()[dim]); + #pragma omp for + for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { + // get globalIndexVector of block start + // this is the base IndexVector of this block + // only dim component is varied + IndexType linIdxBlockStart = xBlock * ndim; + + dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); + dfg.getGlobalVectorIndex(localIndexVector, baseGlobalIndexVector); + assert(localIndexVector[dim] == 0); + + // copy local data to tmp + for (IndexType i = 0; i < xSize; ++i) + tmp[baseGlobalIndexVector[dim] + i] = localData[linIdxBlockStart + i]; + + // copy remote data to tmp + std::vector >& rdcs = lookupTable.getRDCVector(); + copyBackOffset = baseGlobalIndexVector[dim]; + + // go through remote containers for (size_t i = 0; i < rdcs.size(); ++i) { IndexType global1didx = rdcs[i].getKeyIndex(); - tmpGlobalIndexVector[dim] = global1didx; - tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + baseGlobalIndexVector[dim] = global1didx; + tmp[global1didx] = *rdcs[i].getData(baseGlobalIndexVector); } - } - for (LevelType l = 2; l <= lmax; ++l) { - // get first local point of level and corresponding stride - IndexType parentOffset = static_cast(std::pow(2, lmax - l)); - IndexType first = parentOffset - 1; - IndexType levelStride = parentOffset * 2; - - // loop over points of this level with level specific stride - // as long as inside domain - for (IndexType idx = first; idx < dfg.getGlobalSizes()[dim]; idx += levelStride) { - // when no boundary in this dimension we have to check if - // 1d indices outside domain - FG_ELEMENT left(0.0); - FG_ELEMENT right(0.0); - - if (idx - parentOffset > 0) { - left = tmp[idx - parentOffset]; - } + for (LevelType l = 2; l <= lmax; ++l) { + // get first local point of level and corresponding stride + IndexType parentOffset = static_cast(std::pow(2, lmax - l)); + IndexType first = parentOffset - 1; + IndexType levelStride = parentOffset * 2; - if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { - right = tmp[idx + parentOffset]; - } + // loop over points of this level with level specific stride + // as long as inside domain + for (IndexType idx = first; idx < dfg.getGlobalSizes()[dim]; idx += levelStride) { + // when no boundary in this dimension we have to check if + // 1d indices outside domain + FG_ELEMENT left(0.0); + FG_ELEMENT right(0.0); - // do calculation - FG_ELEMENT buf = 0.5 * left; - tmp[idx] += 0.5 * right; - tmp[idx] += buf; - } - } + if (idx - parentOffset > 0) { + left = tmp[idx - parentOffset]; + } - // copy local data back - for (IndexType i = 0; i < xSize; ++i) - localData[linIdxBlockStart + i] = tmp[baseGlobalIndexVector[dim] + i]; - } + if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { + right = tmp[idx + parentOffset]; + } + + // do calculation + FG_ELEMENT buf = 0.5 * left; + tmp[idx] += 0.5 * right; + tmp[idx] += buf; + } + } + // copy local data back + for (IndexType i = 0; i < xSize; ++i) + localData[linIdxBlockStart + i] = tmp[copyBackOffset + i]; + }//#end omp for + }//#end omp parallel } +/** + * Used + */ template static void hierarchizeX_opt_boundary(DistributedFullGrid& dfg, LookupTable& lookupTable) { const DimType dim = 0; assert(dfg.returnBoundaryFlags()[dim] == true); - LevelType lmax = dfg.getLevels()[dim]; - IndexType ndim = dfg.getLocalSizes()[dim]; + const LevelType lmax = dfg.getLevels()[dim]; + const IndexType ndim = dfg.getLocalSizes()[dim]; // size of xBlcok - IndexType xSize = ndim; + const IndexType xSize = ndim; - // create tmp array to store xblock - std::vector tmp(dfg.getGlobalSizes()[dim]); std::vector& localData = dfg.getElementVector(); - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector tmpGlobalIndexVector(dfg.getDimension()); - - IndexType gstart = dfg.getLowerBounds()[dim]; - - // first global index for hierarchization kernel - // first nonboundary point - IndexType idxstart = gstart; - - if (gstart == 0) idxstart += 1; + const IndexType gstart = dfg.getLowerBounds()[dim]; // last global index inside subdomain. // IndexType idxend = dfg.getUpperBounds()[dim] - 1; // level of gend // LevelType level_idxend = dfg.getLevel(dim, idxend); - IndexType linIdxBlockStart; // loop over all xBlocks of local domain -> linearIndex with stride localndim[0] - IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; - - for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { - // get globalIndexVector of block start - // this is the base IndexVector of this block - // only dim component is varied - linIdxBlockStart = xBlock * ndim; - - dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); - assert(localIndexVector[dim] == 0); - - // copy local data to tmp - for (IndexType i = 0; i < xSize; ++i) tmp[gstart + i] = localData[linIdxBlockStart + i]; - - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); - - if (rdcs.size() > 0) { - // go through remote containers - for (size_t i = 0; i < rdcs.size(); ++i) { - IndexType global1didx = rdcs[i].getKeyIndex(); - tmpGlobalIndexVector[dim] = global1didx; - tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + const IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; + #pragma omp parallel + { + IndexVector localIndexVector(dfg.getDimension()); + IndexVector tmpGlobalIndexVector(dfg.getDimension()); + + // create tmp array to store xblock + std::vector tmp(dfg.getGlobalSizes()[dim]); + #pragma omp for + for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { + // get globalIndexVector of block start + // this is the base IndexVector of this block + // only dim component is varied + IndexType linIdxBlockStart = xBlock * ndim; + + dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); + dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); + assert(localIndexVector[dim] == 0); + + // copy local data to tmp + for (IndexType i = 0; i < xSize; ++i) tmp[gstart + i] = localData[linIdxBlockStart + i]; + + // copy remote data to tmp + std::vector >& rdcs = lookupTable.getRDCVector(); + + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + } } - } - // hierarchizeX_inner_boundary_kernel(&tmp[0], lmax, idxstart, idxend, - // level_idxend); - hierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); + // hierarchizeX_inner_boundary_kernel(&tmp[0], lmax, idxstart, idxend, + // level_idxend); + hierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); - // copy local data back - for (IndexType i = 0; i < xSize; ++i) localData[linIdxBlockStart + i] = tmp[gstart + i]; + // copy local data back + for (IndexType i = 0; i < xSize; ++i) localData[linIdxBlockStart + i] = tmp[gstart + i]; + } } } +/** + * Used + */ template static void dehierarchizeX_opt_boundary(DistributedFullGrid& dfg, LookupTable& lookupTable) { const DimType dim = 0; assert(dfg.returnBoundaryFlags()[dim] == true); - LevelType lmax = dfg.getLevels()[dim]; - IndexType ndim = dfg.getLocalSizes()[dim]; + const LevelType lmax = dfg.getLevels()[dim]; + const IndexType ndim = dfg.getLocalSizes()[dim]; // size of xBlcok - IndexType xSize = ndim; + const IndexType xSize = ndim; - // create tmp array to store xblock - std::vector tmp(dfg.getGlobalSizes()[dim]); std::vector& localData = dfg.getElementVector(); - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector tmpGlobalIndexVector(dfg.getDimension()); - - IndexType gstart = dfg.getLowerBounds()[dim]; - - // first global index for hierarchization kernel - // first nonboundary point - IndexType idxstart = gstart; - - if (gstart == 0) idxstart += 1; - - // last global index inside subdomain. - // IndexType idxend = dfg.getUpperBounds()[dim] - 1; - - // level of gend - // LevelType level_idxend = dfg.getLevel(dim, idxend); - IndexType linIdxBlockStart; + const IndexType gstart = dfg.getLowerBounds()[dim]; // loop over all xBlocks of local domain -> linearIndex with stride localndim[0] - IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; + const IndexType nbrxBlocks = dfg.getNrLocalElements() / ndim; + #pragma omp parallel + { + IndexVector localIndexVector(dfg.getDimension()); + IndexVector tmpGlobalIndexVector(dfg.getDimension()); - for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { - // get globalIndexVector of block start - // this is the base IndexVector of this block - // only dim component is varied - linIdxBlockStart = xBlock * ndim; + // create tmp array to store xblock + std::vector tmp(dfg.getGlobalSizes()[dim]); + #pragma omp for + for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { + // get globalIndexVector of block start + // this is the base IndexVector of this block + // only dim component is varied + IndexType linIdxBlockStart = xBlock * ndim; - dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); - assert(localIndexVector[dim] == 0); + dfg.getLocalVectorIndex(linIdxBlockStart, localIndexVector); + dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); + assert(localIndexVector[dim] == 0); - // copy local data to tmp - for (IndexType i = 0; i < xSize; ++i) tmp[gstart + i] = localData[linIdxBlockStart + i]; + // copy local data to tmp + for (IndexType i = 0; i < xSize; ++i) tmp[gstart + i] = localData[linIdxBlockStart + i]; - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); + // copy remote data to tmp + std::vector >& rdcs = lookupTable.getRDCVector(); - if (rdcs.size() > 0) { // go through remote containers for (size_t i = 0; i < rdcs.size(); ++i) { IndexType global1didx = rdcs[i].getKeyIndex(); tmpGlobalIndexVector[dim] = global1didx; tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); } - } - - // hierarchizeX_inner_boundary_kernel( &tmp[0], lmax, - // idxstart, idxend,level_idxend ); - dehierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); - - // copy local data back - for (IndexType i = 0; i < xSize; ++i) localData[linIdxBlockStart + i] = tmp[gstart + i]; - } + + // hierarchizeX_inner_boundary_kernel( &tmp[0], lmax, + // idxstart, idxend,level_idxend ); + dehierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); + + // copy local data back + for (IndexType i = 0; i < xSize; ++i) localData[linIdxBlockStart + i] = tmp[gstart + i]; + }//#end omp for + }//#end omp parallel } template @@ -1604,9 +1534,7 @@ inline void hierarchizeX_opt_boundary_kernel(FG_ELEMENT* data, LevelType lmax, i int stepsize; int parOffsetStrided; - FG_ELEMENT* val = data; - - // ssa variables + // ssa variables: helper variables 1 to 3 and values at right and left parents, respectively FG_ELEMENT val1 = -100, val2 = -100, val3 = -100, parL = -100, parR = -100; int lmaxi = static_cast(lmax); @@ -1616,19 +1544,22 @@ inline void hierarchizeX_opt_boundary_kernel(FG_ELEMENT* data, LevelType lmax, i stepsize = 2; parentOffset = 1; + FG_ELEMENT* val = data; + for (ll--; ll > -1; ll--) { // hier is index um 1 geschiftet da vorher level 2 manuell behandelt wurde parOffsetStrided = parentOffset * stride; parL = 0.5 * val[start + offset * stride - parOffsetStrided]; - ; - for (ctr = 0; ctr < steps; ctr++) { - val1 = val[start + offset * stride]; + for (ctr = 0; ctr < steps; ++ctr) { parR = 0.5 * val[start + offset * stride + parOffsetStrided]; + + val1 = val[start + offset * stride]; val2 = val1 - parL; val3 = val2 - parR; val[start + offset * stride] = val3; - parL = parR; + + parL = parR; // can reuse the data if we only have one grid offset += stepsize; } @@ -1637,7 +1568,6 @@ inline void hierarchizeX_opt_boundary_kernel(FG_ELEMENT* data, LevelType lmax, i parentOffset = stepsize; stepsize = stepsize << 1; } - return; } @@ -1692,75 +1622,79 @@ inline void dehierarchizeX_opt_boundary_kernel(FG_ELEMENT* data, LevelType lmax, return; } -/* - * this algorithm can only work if the domain decompostion is powers of two - * - * data: has to point to the start of the temporary array which has the global - * size of the current dimension - * - * start: has to be set to the first inner point of the domain, i.e. the first - * point of the highest level. for subdomains that have no left boundary this - * should be the first point otherwise there is something wrong - * - * at the moment the algorithm can only work if the dimension has boundary points, - * otherwise for the last rank (i.e. the righmost subdomain in a 1d representation) - * idxmax is not on the lowest level. - * idxmax has to be the last point inner in the subdomain and it should have the - * lowest level (besides a the boundary point) of the subdomain, - * otherwise something is wrong - * - * - */ - -template -inline void hierarchizeX_inner_boundary_kernel(FG_ELEMENT* data, LevelType lmax, IndexType start, - IndexType idxMax, LevelType level_idxmax) { - FG_ELEMENT* val = data; - - // ssa variables - FG_ELEMENT val1 = -100, val2 = -100, val3 = -100, parL = -100, parR = -100; - - IndexType lmaxi = static_cast(lmax); - IndexType ll = lmaxi; - - IndexType stepsize = 2; - IndexType parentOffset = 1; - IndexType offset = 0; - - for (ll--; ll > -1; - ll--) { // hier is index um 1 geschiftet da vorher level 2 manuell behandelt wurde - IndexType idx = start + offset; - parL = 0.5 * val[idx - parentOffset]; - - while (idx < idxMax) { - val1 = val[idx]; - parR = 0.5 * val[idx + parentOffset]; - val2 = val1 - parL; - val3 = val2 - parR; - val[idx] = val3; - parL = parR; - idx += stepsize; - } - - offset = (1 << (lmaxi - ll)) - 1; // no boundary case - parentOffset = stepsize; - stepsize = stepsize << 1; - } - - // special treatment for idxmax because due to the domain decomposition - // it can occur that there are levels missing. the above algorithm - // cannot cope with missing levels, however. - if (level_idxmax > 0) { - parentOffset = (1 << (lmaxi - static_cast(level_idxmax))); - parL = 0.5 * val[idxMax - parentOffset]; - val[idxMax] -= 0.5 * val[idxMax + parentOffset]; - val[idxMax] -= parL; - } - - return; -} +// /* +// * this algorithm can only work if the domain decompostion is powers of two +// * +// * data: has to point to the start of the temporary array which has the global +// * size of the current dimension +// * +// * start: has to be set to the first inner point of the domain, i.e. the first +// * point of the highest level. for subdomains that have no left boundary this +// * should be the first point otherwise there is something wrong +// * +// * at the moment the algorithm can only work if the dimension has boundary points, +// * otherwise for the last rank (i.e. the righmost subdomain in a 1d representation) +// * idxmax is not on the lowest level. +// * idxmax has to be the last point inner in the subdomain and it should have the +// * lowest level (besides a the boundary point) of the subdomain, +// * otherwise something is wrong +// * +// * +// */ + +// template +// inline void hierarchizeX_inner_boundary_kernel(FG_ELEMENT* data, LevelType lmax, IndexType start, +// IndexType idxMax, LevelType level_idxmax) { +// FG_ELEMENT* val = data; + +// // ssa variables +// FG_ELEMENT val1 = -100, val2 = -100, val3 = -100, parL = -100, parR = -100; + +// IndexType lmaxi = static_cast(lmax); +// IndexType ll = lmaxi; + +// IndexType stepsize = 2; +// IndexType parentOffset = 1; +// IndexType offset = 0; + +// for (ll--; ll > -1; +// ll--) { // hier is index um 1 geschiftet da vorher level 2 manuell behandelt wurde +// IndexType idx = start + offset; +// parL = 0.5 * val[idx - parentOffset]; + +// while (idx < idxMax) { +// val1 = val[idx]; +// parR = 0.5 * val[idx + parentOffset]; +// val2 = val1 - parL; +// val3 = val2 - parR; +// val[idx] = val3; +// parL = parR; +// idx += stepsize; +// } + +// offset = (1 << (lmaxi - ll)) - 1; // no boundary case +// parentOffset = stepsize; +// stepsize = stepsize << 1; +// } + +// // special treatment for idxmax because due to the domain decomposition +// // it can occur that there are levels missing. the above algorithm +// // cannot cope with missing levels, however. +// if (level_idxmax > 0) { +// parentOffset = (1 << (lmaxi - static_cast(level_idxmax))); +// parL = 0.5 * val[idxMax - parentOffset]; +// val[idxMax] -= 0.5 * val[idxMax + parentOffset]; +// val[idxMax] -= parL; +// } + +// return; +// } -// function hierarchizeN +/** + * function hierarchizeN + * Unused + * deprecated?? + * template void hierarchizeN_boundary(DistributedFullGrid& dfg, LookupTable& lookupTable, DimType dim) { @@ -1827,522 +1761,607 @@ void hierarchizeN_boundary(DistributedFullGrid& dfg, } } } -} - -template -void hierarchizeN_opt_boundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim) { - assert(dfg.returnBoundaryFlags()[dim] == true); - - LevelType lmax = dfg.getLevels()[dim]; - IndexType size = dfg.getNrLocalElements(); - IndexType stride = dfg.getLocalOffsets()[dim]; - IndexType ndim = dfg.getLocalSizes()[dim]; - IndexType jump = stride * ndim; - IndexType nbrOfPoles = size / ndim; +}*/ - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector tmpGlobalIndexVector(dfg.getDimension()); +/** + * Used + */ +template +void hierarchizeN_opt(DistributedFullGrid& dfg, LookupTable& lookupTable, + const DimType dim) { + assert(dfg.returnBoundaryFlags()[dim] == boundary); + + const LevelType lmax = dfg.getLevels()[dim]; + const IndexType size = dfg.getNrLocalElements(); + const IndexType stride = dfg.getLocalOffsets()[dim]; + const IndexType ndim = dfg.getLocalSizes()[dim]; + const IndexType jump = stride * ndim; + const IndexType nbrOfPoles = size / ndim; - // loop over poles - std::vector tmp(dfg.getGlobalSizes()[dim]); std::vector& ldata = dfg.getElementVector(); - lldiv_t divresult; - IndexType start; - IndexType gstart = dfg.getLowerBounds()[dim]; - - // first global index for hierarchization kernel. may not be a boundary point - IndexType idxstart = gstart; - if (gstart == 0) idxstart += 1; + const IndexType gstart = dfg.getLowerBounds()[dim]; - // last global index inside subdomain and corresponding level - // IndexType idxend = dfg.getUpperBounds()[dim] - 1; - // LevelType level_idxend = dfg.getLevel(dim, idxend); + #pragma omp parallel + { + IndexVector localIndexVector(dfg.getDimension()); + IndexVector tmpGlobalIndexVector(dfg.getDimension()); - for (IndexType nn = 0; nn < nbrOfPoles; + std::vector tmp(dfg.getGlobalSizes()[dim]); + // loop over poles + #pragma omp for + for (IndexType nn = 0; nn < nbrOfPoles; ++nn) { // integer operations form bottleneck here -- nested loops are twice as slow - divresult = std::lldiv(nn, stride); - start = divresult.quot * jump + divresult.rem; // localer lin index start of pole - - // compute global vector index of start - dfg.getLocalVectorIndex(start, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); - assert(localIndexVector[dim] == 0); + lldiv_t divresult = std::lldiv(nn, stride); + IndexType start = divresult.quot * jump + divresult.rem; // localer lin index start of pole + + // compute global vector index of start + dfg.getLocalVectorIndex(start, localIndexVector); + dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); + assert(localIndexVector[dim] == 0); + + // copy remote data to tmp + std::vector >& rdcs = lookupTable.getRDCVector(); + + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + } + } - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); + // copy local data + for (IndexType i = 0; i < ndim; ++i) tmp[gstart + i] = ldata[start + stride * i]; - if (rdcs.size() > 0) { - // go through remote containers - for (size_t i = 0; i < rdcs.size(); ++i) { - IndexType global1didx = rdcs[i].getKeyIndex(); - tmpGlobalIndexVector[dim] = global1didx; - tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); - } - } + if (boundary) { + // hierarchize tmp array with hupp function + hierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); + } else { + // hierarchization kernel + IndexType idxMax = dfg.getLastGlobal1dIndex(dim); + + for (LevelType l = lmax; l > 0; --l) { + // get first local point of level and corresponding stride + IndexType firstOfLevel = getFirstIndexOfLevel1d(dfg, dim, l); + IndexType parentOffset = static_cast(std::pow(2, lmax - l)); + IndexType levelStride = parentOffset * 2; + + // loop over points of this level with level specific stride + // as long as inside domain + for (IndexType idx = firstOfLevel; idx <= idxMax; idx += levelStride) { + // when no boundary in this dimension we have to check if + // 1d indices outside domain + FG_ELEMENT left(0.0); + FG_ELEMENT right(0.0); + + if (idx - parentOffset > 0) { + left = tmp[idx - parentOffset]; + } - // copy local data - for (IndexType i = 0; i < ndim; ++i) tmp[gstart + i] = ldata[start + stride * i]; + if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { + right = tmp[idx + parentOffset]; + } - // hierarchize tmp array with hupp function - hierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); - // hierarchizeX_inner_boundary_kernel(&tmp[0], lmax, idxstart, idxend, - // level_idxend); + // do calculation + FG_ELEMENT buf = -0.5 * left; + tmp[idx] -= 0.5 * right; + tmp[idx] += buf; + } + } + } - // copy pole back - for (IndexType i = 0; i < ndim; ++i) ldata[start + stride * i] = tmp[gstart + i]; + // copy pole back + for (IndexType i = 0; i < ndim; ++i) ldata[start + stride * i] = tmp[gstart + i]; + } } } -template -void hierarchizeN_opt_noboundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim) { - assert(dfg.returnBoundaryFlags()[dim] == false); - - LevelType lmax = dfg.getLevels()[dim]; - IndexType size = dfg.getNrLocalElements(); - IndexType stride = dfg.getLocalOffsets()[dim]; - IndexType ndim = dfg.getLocalSizes()[dim]; - IndexType jump = stride * ndim; - IndexType nbrOfPoles = size / ndim; - - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector tmpGlobalIndexVector(dfg.getDimension()); +/** + * Used + */ +template +void dehierarchizeN_opt(DistributedFullGrid& dfg, LookupTable& lookupTable, + const DimType dim) { + assert(dfg.returnBoundaryFlags()[dim] == boundary); + + const LevelType lmax = dfg.getLevels()[dim]; + const IndexType size = dfg.getNrLocalElements(); + const IndexType stride = dfg.getLocalOffsets()[dim]; + const IndexType ndim = dfg.getLocalSizes()[dim]; + const IndexType jump = stride * ndim; + const IndexType nbrOfPoles = size / ndim; // loop over poles - std::vector tmp(dfg.getGlobalSizes()[dim]); std::vector& ldata = dfg.getElementVector(); - lldiv_t divresult; - IndexType start; - IndexType gstart = dfg.getLowerBounds()[dim]; - - // first global index for hierarchization kernel. may not be a boundary point - IndexType idxstart = gstart; + const IndexType gstart = dfg.getLowerBounds()[dim]; - if (gstart == 0) idxstart += 1; - - // last global index inside subdomain and corresponding level - // IndexType idxend = dfg.getUpperBounds()[dim] - 1; - // LevelType level_idxend = dfg.getLevel(dim, idxend); + #pragma omp parallel + { + IndexVector localIndexVector(dfg.getDimension()); + IndexVector tmpGlobalIndexVector(dfg.getDimension()); + + std::vector tmp(dfg.getGlobalSizes()[dim]); + +#pragma omp for // default(none)// firstprivate(lo) + for (IndexType nn = 0; nn < nbrOfPoles; + ++nn) { // integer operations form bottleneck here -- nested loops are twice as slow + lldiv_t divresult = std::lldiv(nn, stride); + IndexType start = divresult.quot * jump + divresult.rem; // localer lin index start of pole + + // compute global vector index of start + dfg.getLocalVectorIndex(start, localIndexVector); //* + dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); //* + assert(localIndexVector[dim] == 0); + + // copy remote data to tmp + std::vector >& rdcs = + lookupTable.getRDCVector(); //! rdcs why here + + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); //! rdcs + } + } - for (IndexType nn = 0; nn < nbrOfPoles; - ++nn) { // integer operations form bottleneck here -- nested loops are twice as slow - divresult = std::lldiv(nn, stride); - start = divresult.quot * jump + divresult.rem; // localer lin index start of pole + // copy local data + for (IndexType i = 0; i < ndim; ++i) tmp[gstart + i] = ldata[start + stride * i]; //§ ldata - // compute global vector index of start - dfg.getLocalVectorIndex(start, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); - assert(localIndexVector[dim] == 0); + // dehierarchization kernel + if (boundary) { + // hierarchize tmp array with hupp function + dehierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); + } else { + for (LevelType l = 2; l <= lmax; ++l) { + // get first local point of level and corresponding stride + IndexType parentOffset = static_cast(std::pow(2, lmax - l)); + IndexType first = parentOffset - 1; + IndexType levelStride = parentOffset * 2; + + // loop over points of this level with level specific stride + // as long as inside domain + for (IndexType idx = first; idx < dfg.getGlobalSizes()[dim]; idx += levelStride) { + // when no boundary in this dimension we have to check if + // 1d indices outside domain + FG_ELEMENT left(0.0); + FG_ELEMENT right(0.0); + + if (idx - parentOffset > 0) { + left = tmp[idx - parentOffset]; + } - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); + if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { + right = tmp[idx + parentOffset]; + } - if (rdcs.size() > 0) { - // go through remote containers - for (size_t i = 0; i < rdcs.size(); ++i) { - IndexType global1didx = rdcs[i].getKeyIndex(); - tmpGlobalIndexVector[dim] = global1didx; - tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + // do calculation + FG_ELEMENT buf = 0.5 * left; + tmp[idx] += 0.5 * right; + tmp[idx] += buf; + } + } } - } - // copy local data - for (IndexType i = 0; i < ndim; ++i) tmp[gstart + i] = ldata[start + stride * i]; + // copy pole back + for (IndexType i = 0; i < ndim; ++i) ldata[start + stride * i] = tmp[gstart + i]; + }//# End pragma omp for + }//# end pragma parallel +} - // hierarchization kernel - IndexType idxMax = dfg.getLastGlobal1dIndex(dim); +// Ensemble variants - for (LevelType l = lmax; l > 0; --l) { - // get first local point of level and corresponding stride - IndexType firstOfLevel = getFirstIndexOfLevel1d(dfg, dim, l); - IndexType parentOffset = static_cast(std::pow(2, lmax - l)); - IndexType levelStride = parentOffset * 2; - // loop over points of this level with level specific stride - // as long as inside domain - for (IndexType idx = firstOfLevel; idx <= idxMax; idx += levelStride) { - // when no boundary in this dimension we have to check if - // 1d indices outside domain - FG_ELEMENT left(0.0); - FG_ELEMENT right(0.0); +template +static void hierarchizeX_opt_noboundary_dg(DFGEnsemble& dfgEnsemble, + std::vector>& lookupTables) { + assert(false && "Not implemented for no boundary"); +} - if (idx - parentOffset > 0) { - left = tmp[idx - parentOffset]; - } - - if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { - right = tmp[idx + parentOffset]; - } - - // do calculation - FG_ELEMENT buf = -0.5 * left; - tmp[idx] -= 0.5 * right; - tmp[idx] += buf; - } - } - - // copy pole back - for (IndexType i = 0; i < ndim; ++i) ldata[start + stride * i] = tmp[gstart + i]; - } -} +template +static void dehierarchizeX_opt_noboundary_dg(DFGEnsemble& dfgEnsemble, + std::vector>& lookupTables) { + assert(false && "Not implemented for no boundary"); +} template -void dehierarchizeN_opt_boundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim) { - assert(dfg.returnBoundaryFlags()[dim] == true); - - LevelType lmax = dfg.getLevels()[dim]; - IndexType size = dfg.getNrLocalElements(); - IndexType stride = dfg.getLocalOffsets()[dim]; - IndexType ndim = dfg.getLocalSizes()[dim]; - IndexType jump = stride * ndim; - IndexType nbrOfPoles = size / ndim; - - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector tmpGlobalIndexVector(dfg.getDimension()); - - // loop over poles - std::vector tmp(dfg.getGlobalSizes()[dim]); - std::vector& ldata = dfg.getElementVector(); - lldiv_t divresult; - IndexType start; - IndexType gstart = dfg.getLowerBounds()[dim]; +static void hierarchizeX_opt_boundary_dg(DFGEnsemble& dfgEnsemble, + std::vector>& lookupTables) { + const DimType dim = 0; + assert(dfgEnsemble.getDFG(0).returnBoundaryFlags()[dim] == true); - // first global index for hierarchization kernel. may not be a boundary point - IndexType idxstart = gstart; + const LevelType lmax = dfgEnsemble.getDFG(0).getLevels()[dim]; + const IndexType ndim = dfgEnsemble.getDFG(0).getLocalSizes()[dim]; - if (gstart == 0) idxstart += 1; + // size of xBlcok + const IndexType xSize = ndim; + const IndexType gstart = dfgEnsemble.getDFG(0).getLowerBounds()[dim]; - // last global index inside subdomain and corresponding level + // last global index inside subdomain. // IndexType idxend = dfg.getUpperBounds()[dim] - 1; - // LevelType level_idxend = dfg.getLevel(dim, idxend); - for (IndexType nn = 0; nn < nbrOfPoles; - ++nn) { // integer operations form bottleneck here -- nested loops are twice as slow - divresult = std::lldiv(nn, stride); - start = divresult.quot * jump + divresult.rem; // localer lin index start of pole + // level of gend + // LevelType level_idxend = dfg.getLevel(dim, idxend); - // compute global vector index of start - dfg.getLocalVectorIndex(start, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); - assert(localIndexVector[dim] == 0); + // loop over all xBlocks of local domain -> linearIndex with stride localndim[0] + const IndexType nbrxBlocks = dfgEnsemble.getDFG(0).getNrLocalElements() / ndim; + #pragma omp parallel + { + IndexVector localIndexVector(dfgEnsemble.getDFG(0).getDimension()); + IndexVector tmpGlobalIndexVector(dfgEnsemble.getDFG(0).getDimension()); + + // create tmp arrays to store xblocks + std::vector> tmp(dfgEnsemble.getNumFullGrids(), + std::vector(dfgEnsemble.getDFG(0).getGlobalSizes()[dim])); + #pragma omp for + for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { + // get globalIndexVector of block start + // this is the base IndexVector of this block + // only dim component is varied + IndexType linIdxBlockStart = xBlock * ndim; + + dfgEnsemble.getDFG(0).getLocalVectorIndex(linIdxBlockStart, localIndexVector); + assert(localIndexVector[dim] == 0); + + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); + + // copy local data to tmp + for (IndexType i = 0; i < xSize; ++i) tmp[j][gstart + i] = dfg.getElementVector()[linIdxBlockStart + i]; + + // copy remote data to tmp + std::vector >& rdcs = lookupTables[j].getRDCVector(); + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[j][global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + } + } + } - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); + // need to hierarchize for every pair of ensemble grids that are neighbors in x + auto lowerIndices = dfgEnsemble.getIndicesOfLowerGridsInDimension(dim); + for (auto& index : lowerIndices) { + hierarchizeX_opt_boundary_kernel_dg(&tmp[index][0], + &tmp[GridEnumeration::getUpperNeighborInDimension(static_cast(dim), index)][0], + lmax, 0, 1); + } - if (rdcs.size() > 0) { - // go through remote containers - for (size_t i = 0; i < rdcs.size(); ++i) { - IndexType global1didx = rdcs[i].getKeyIndex(); - tmpGlobalIndexVector[dim] = global1didx; - tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + // copy local data back + for (IndexType i = 0; i < xSize; ++i) dfg.getElementVector()[linIdxBlockStart + i] = tmp[j][gstart + i]; } } - - // copy local data - for (IndexType i = 0; i < ndim; ++i) tmp[gstart + i] = ldata[start + stride * i]; - - // hierarchize tmp array with hupp function - dehierarchizeX_opt_boundary_kernel(&tmp[0], lmax, 0, 1); - // hierarchizeX_inner_boundary_kernel( &tmp[0], lmax, - // idxstart, idxend, level_idxend ); - - // copy pole back - for (IndexType i = 0; i < ndim; ++i) ldata[start + stride * i] = tmp[gstart + i]; } } template -void dehierarchizeN_opt_noboundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim) { - assert(dfg.returnBoundaryFlags()[dim] == false); +static void dehierarchizeX_opt_boundary_dg(DFGEnsemble& dfgEnsemble, + std::vector>& lookupTables) { + const DimType dim = 0; + assert(dfgEnsemble.getDFG(0).returnBoundaryFlags()[dim] == true); - LevelType lmax = dfg.getLevels()[dim]; - IndexType size = dfg.getNrLocalElements(); - IndexType stride = dfg.getLocalOffsets()[dim]; - IndexType ndim = dfg.getLocalSizes()[dim]; - IndexType jump = stride * ndim; - IndexType nbrOfPoles = size / ndim; + const LevelType lmax = dfgEnsemble.getDFG(0).getLevels()[dim]; + const IndexType ndim = dfgEnsemble.getDFG(0).getLocalSizes()[dim]; - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector tmpGlobalIndexVector(dfg.getDimension()); + // size of xBlcok + const IndexType xSize = ndim; - // loop over poles - std::vector tmp(dfg.getGlobalSizes()[dim]); - std::vector& ldata = dfg.getElementVector(); - lldiv_t divresult; - IndexType start; - IndexType gstart = dfg.getLowerBounds()[dim]; + const IndexType gstart = dfgEnsemble.getDFG(0).getLowerBounds()[dim]; - // first global index for hierarchization kernel. may not be a boundary point - IndexType idxstart = gstart; + // loop over all xBlocks of local domain -> linearIndex with stride localndim[0] + const IndexType nbrxBlocks = dfgEnsemble.getDFG(0).getNrLocalElements() / ndim; + #pragma omp parallel + { + IndexVector localIndexVector(dfgEnsemble.getDFG(0).getDimension()); + IndexVector tmpGlobalIndexVector(dfgEnsemble.getDFG(0).getDimension()); + + // create tmp array to store xblock + std::vector> tmp(dfgEnsemble.getNumFullGrids(), + std::vector(dfgEnsemble.getDFG(0).getGlobalSizes()[dim])); + #pragma omp for + for (IndexType xBlock = 0; xBlock < nbrxBlocks; ++xBlock) { + // get globalIndexVector of block start + // this is the base IndexVector of this block + // only dim component is varied + IndexType linIdxBlockStart = xBlock * ndim; + + dfgEnsemble.getDFG(0).getLocalVectorIndex(linIdxBlockStart, localIndexVector); + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); + assert(localIndexVector[dim] == 0); + + // copy local data to tmp + for (IndexType i = 0; i < xSize; ++i) tmp[j][gstart + i] = dfg.getElementVector()[linIdxBlockStart + i]; + + // copy remote data to tmp + std::vector >& rdcs = lookupTables[j].getRDCVector(); + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[j][global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); + } + } + } - if (gstart == 0) idxstart += 1; + // need to dehierarchize for every pair of ensemble grids that are neighbors in x + auto lowerIndices = dfgEnsemble.getIndicesOfLowerGridsInDimension(dim); + for (auto& index : lowerIndices) { + dehierarchizeX_opt_boundary_kernel_dg(&tmp[index][0], + &tmp[GridEnumeration::getUpperNeighborInDimension(static_cast(dim), index)][0], + lmax, 0, 1); + } - // last global index inside subdomain and corresponding level - // IndexType idxend = dfg.getUpperBounds()[dim] - 1; - // LevelType level_idxend = dfg.getLevel(dim, idxend); + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + // copy local data back + for (IndexType i = 0; i < xSize; ++i) dfg.getElementVector()[linIdxBlockStart + i] = tmp[j][gstart + i]; + } + }//#end omp for + }//#end omp parallel +} - for (IndexType nn = 0; nn < nbrOfPoles; - ++nn) { // integer operations form bottleneck here -- nested loops are twice as slow - divresult = std::lldiv(nn, stride); - start = divresult.quot * jump + divresult.rem; // localer lin index start of pole +template +inline void hierarchizeX_opt_boundary_kernel_dg(FG_ELEMENT* dataLeft, FG_ELEMENT* dataRight, LevelType lmax, int start, + int stride) { + int steps; + int ctr; + int offset, parentOffset; + int stepsize; + int parOffsetStrided; - // compute global vector index of start - dfg.getLocalVectorIndex(start, localIndexVector); - dfg.getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); - assert(localIndexVector[dim] == 0); + // ssa variables: helper variables 1 to 3 and values at right and left parents, respectively + FG_ELEMENT val1 = -100, val2 = -100, val3 = -100, parL = -100, parR = -100; - // copy remote data to tmp - std::vector >& rdcs = lookupTable.getRDCVector(); + int lmaxi = static_cast(lmax); + int ll = lmaxi; + steps = (1 << (ll - 1)); + offset = 1; // 1 da boundary + stepsize = 2; + parentOffset = 1; - if (rdcs.size() > 0) { - // go through remote containers - for (size_t i = 0; i < rdcs.size(); ++i) { - IndexType global1didx = rdcs[i].getKeyIndex(); - tmpGlobalIndexVector[dim] = global1didx; - tmp[global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); - } - } + FG_ELEMENT* valLeft = dataLeft; + FG_ELEMENT* valRight = dataRight; - // copy local data - for (IndexType i = 0; i < ndim; ++i) tmp[gstart + i] = ldata[start + stride * i]; - - // dehierarchization kernel - for (LevelType l = 2; l <= lmax; ++l) { - // get first local point of level and corresponding stride - IndexType parentOffset = static_cast(std::pow(2, lmax - l)); - IndexType first = parentOffset - 1; - IndexType levelStride = parentOffset * 2; - - // loop over points of this level with level specific stride - // as long as inside domain - for (IndexType idx = first; idx < dfg.getGlobalSizes()[dim]; idx += levelStride) { - // when no boundary in this dimension we have to check if - // 1d indices outside domain - FG_ELEMENT left(0.0); - FG_ELEMENT right(0.0); - - if (idx - parentOffset > 0) { - left = tmp[idx - parentOffset]; - } + for (ll--; ll > -1; + ll--) { // hier is index um 1 geschiftet da vorher level 2 manuell behandelt wurde + parOffsetStrided = parentOffset * stride; + // hierarchize w.r.t. right-hand limit of left parent, and left-hand limit of right parent - if (idx + parentOffset < dfg.getGlobalSizes()[dim]) { - right = tmp[idx + parentOffset]; - } + for (ctr = 0; ctr < steps; ++ctr) { + parL = 0.5 * valRight[start + offset * stride - parOffsetStrided]; + parR = 0.5 * valLeft[start + offset * stride + parOffsetStrided]; - // do calculation - FG_ELEMENT buf = 0.5 * left; - tmp[idx] += 0.5 * right; - tmp[idx] += buf; - } + val1 = valLeft[start + offset * stride]; + val2 = val1 - parL; + val3 = val2 - parR; + valLeft[start + offset * stride] = val3; + val1 = valRight[start + offset * stride]; + val2 = val1 - parL; + val3 = val2 - parR; + valRight[start + offset * stride] = val3; + + offset += stepsize; } - // copy pole back - for (IndexType i = 0; i < ndim; ++i) ldata[start + stride * i] = tmp[gstart + i]; + steps = steps >> 1; + offset = (1 << (lmaxi - ll)); // boundary case + parentOffset = stepsize; + stepsize = stepsize << 1; } + return; } template -void hierarchizeN_noboundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim) { - assert(dfg.returnBoundaryFlags()[dim] == false); - LevelType lmax = dfg.getLevels()[dim]; - IndexType idxMax = dfg.getLastGlobal1dIndex(dim); - IndexType ndim = dfg.getLocalSizes()[dim]; - - // number of xblocks for the hierarchization of one point of dim - IndexType nbrxBlocks = dfg.getNrLocalElements() / (dfg.getLocalSizes()[0] * ndim); - // size of xBlcok - IndexType xSize = dfg.getLocalSizes()[0]; - - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector globalIndexVectorCenter(dfg.getDimension()); - IndexVector globalIndexVectorLeft(dfg.getDimension()); - IndexVector globalIndexVectorRight(dfg.getDimension()); - - // loop over levels - for (LevelType l = lmax; l > 0; --l) { - // loop over all 1d-points of the level - - // get first local point of level and corresponding stride - IndexType firstOfLevel = getFirstIndexOfLevel1d(dfg, dim, l); - IndexType parentOffset = static_cast(std::pow(2, lmax - l)); - IndexType levelStride = parentOffset * 2; - - for (IndexType idx = firstOfLevel; idx <= idxMax; idx += levelStride) { - // get local 1d idx - IndexType lidx = idx - dfg.getLowerBounds()[dim]; - - // loop over all possible xBlocks - for (IndexType localLinIdxBlockStart = 0; localLinIdxBlockStart < dfg.getNrLocalElements(); - localLinIdxBlockStart += xSize) { - // get localIndexVector of block start - dfg.getLocalVectorIndex(localLinIdxBlockStart, localIndexVector); +inline void dehierarchizeX_opt_boundary_kernel_dg(FG_ELEMENT* dataLeft, FG_ELEMENT* dataRight, LevelType lmax, int start, + int stride) { + int steps; + int ctr; + int offset, parentOffset; + int stepsize; + int parOffsetStrided; + + FG_ELEMENT* valLeft = dataLeft; + FG_ELEMENT* valRight = dataRight; - if (localIndexVector[dim] == lidx) { - // hierarchize this block + // ssa variables + FG_ELEMENT val1 = -100, val2 = -100, val3 = -100, parL = -100, parR = -100; - assert(localIndexVector[0] == 0); + // int maxL = l[dim]; + // start = start +stride; // nun mit offset = 1;start war vorher der erste gitterpunkt + // (welcher randpunkt ist) und ist nun der erste zu hierarchisierende Gitterpunkt. + int maxL = int(lmax); - dfg.getGlobalVectorIndex(localIndexVector, baseGlobalIndexVector); + steps = 1; + offset = (1 << (maxL - 1)); // offset =1 da boundary. + stepsize = (1 << maxL); + parentOffset = (1 << (maxL - 1)); - globalIndexVectorCenter = baseGlobalIndexVector; - globalIndexVectorLeft = baseGlobalIndexVector; - globalIndexVectorRight = baseGlobalIndexVector; - globalIndexVectorCenter[dim] = idx; - globalIndexVectorLeft[dim] = idx - parentOffset; - globalIndexVectorRight[dim] = idx + parentOffset; + for (LevelType ll = 1; ll <= maxL; + ll++) { // couting with offset of one as level 2 was hierarchized manually before + // just convers setting of strides and co. + parOffsetStrided = parentOffset * stride; - // translate global indices vector to pointers - FG_ELEMENT* center = lookupTable.getData(globalIndexVectorCenter); + for (ctr = 0; ctr < steps; ctr++) { + parL = 0.5 * valRight[start + offset * stride - parOffsetStrided]; + parR = 0.5 * valLeft[start + offset * stride + parOffsetStrided]; + val1 = valLeft[start + offset * stride]; + val2 = val1 + parL; + val3 = val2 + parR; + valLeft[start + offset * stride] = val3; + val1 = valRight[start + offset * stride]; + val2 = val1 + parL; + val3 = val2 + parR; + valRight[start + offset * stride] = val3; + offset += stepsize; + } - // when no boundary in this dimension we have to check if - // 1d indices outside domain - FG_ELEMENT* left = NULL; - FG_ELEMENT* right = NULL; + steps = steps << 1; + offset = (1 << (maxL - (ll + 1))); // boundary case + parentOffset = parentOffset >> 1; + stepsize = stepsize >> 1; + } - if (globalIndexVectorLeft[dim] > 0) { - left = lookupTable.getData(globalIndexVectorLeft); - } + return; +} - if (globalIndexVectorRight[dim] < dfg.getGlobalSizes()[dim]) { - right = lookupTable.getData(globalIndexVectorRight); - } +template +void hierarchizeN_opt_dg(DFGEnsemble& dfgEnsemble, std::vector>& lookupTables, + const DimType dim) { + assert(dfgEnsemble.getDFG(0).returnBoundaryFlags()[dim] == boundary); - if (left != NULL && right != NULL) { - // hierarchization kernel inner points - for (IndexType i = 0; i < xSize; ++i) { - center[i] -= 0.5 * left[i]; - center[i] -= 0.5 * right[i]; - } - } + const LevelType lmax = dfgEnsemble.getDFG(0).getLevels()[dim]; + const IndexType size = dfgEnsemble.getDFG(0).getNrLocalElements(); + const IndexType stride = dfgEnsemble.getDFG(0).getLocalOffsets()[dim]; + const IndexType ndim = dfgEnsemble.getDFG(0).getLocalSizes()[dim]; + const IndexType jump = stride * ndim; + const IndexType nbrOfPoles = size / ndim; - if (left == NULL && right != NULL) { - // hierarchization kernel left point does not exist - for (IndexType i = 0; i < xSize; ++i) { - center[i] -= 0.5 * right[i]; - } - } + const IndexType gstart = dfgEnsemble.getDFG(0).getLowerBounds()[dim]; - if (left != NULL && right == NULL) { - // hierarchization kernel right point does not exist - for (IndexType i = 0; i < xSize; ++i) { - center[i] -= 0.5 * left[i]; - } + #pragma omp parallel + { + IndexVector localIndexVector(dfgEnsemble.getDFG(0).getDimension()); + IndexVector tmpGlobalIndexVector(dfgEnsemble.getDFG(0).getDimension()); + + std::vector> tmp(dfgEnsemble.getNumFullGrids(), + std::vector(dfgEnsemble.getDFG(0).getGlobalSizes()[dim])); + // loop over poles + #pragma omp for + for (IndexType nn = 0; nn < nbrOfPoles; ++nn) { + // integer operations form bottleneck here -- nested loops are twice as slow + lldiv_t divresult = std::lldiv(nn, stride); + IndexType start = divresult.quot * jump + divresult.rem; // localer lin index start of pole + + // compute global vector index of start + dfgEnsemble.getDFG(0).getLocalVectorIndex(start, localIndexVector); + assert(localIndexVector[dim] == 0); + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + dfgEnsemble.getDFG(0).getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); + + // copy local data to tmp + for (IndexType i = 0; i < ndim; ++i) tmp[j][gstart + i] = dfg.getElementVector()[start + stride * i]; + + // copy remote data to tmp + std::vector >& rdcs = lookupTables[j].getRDCVector(); + + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[j][global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); } + } + } - // for case where left and right outside domain, do nothing + if (boundary) { + // hierarchize tmp array with hupp function + // need to hierarchize for every pair of ensemble grids that are neighbors in x + auto lowerIndices = dfgEnsemble.getIndicesOfLowerGridsInDimension(dim); + for (auto& index : lowerIndices) { + hierarchizeX_opt_boundary_kernel_dg(&tmp[index][0], + &tmp[GridEnumeration::getUpperNeighborInDimension(static_cast(dim), index)][0], + lmax, 0, 1); } + } else { + assert(false && "Not implemented for no boundary"); + } + + // copy pole back + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + for (IndexType i = 0; i < ndim; ++i) dfg.getElementVector()[start + stride * i] = tmp[j][gstart + i]; } } } } -template -void dehierarchizeN_noboundary(DistributedFullGrid& dfg, - LookupTable& lookupTable, DimType dim) { - assert(dfg.returnBoundaryFlags()[dim] == false); - LevelType lmax = dfg.getLevels()[dim]; - IndexType idxMax = dfg.getLastGlobal1dIndex(dim); - IndexType ndim = dfg.getLocalSizes()[dim]; - - // number of xblocks for the hierarchization of one point of dim - IndexType nbrxBlocks = dfg.getNrLocalElements() / (dfg.getLocalSizes()[0] * ndim); - // size of xBlcok - IndexType xSize = dfg.getLocalSizes()[0]; - - IndexVector localIndexVector(dfg.getDimension()); - IndexVector baseGlobalIndexVector(dfg.getDimension()); - IndexVector globalIndexVectorCenter(dfg.getDimension()); - IndexVector globalIndexVectorLeft(dfg.getDimension()); - IndexVector globalIndexVectorRight(dfg.getDimension()); - - // loop over levels - for (LevelType l = lmax; l > 0; --l) { - // loop over all 1d-points of the level - - // get first local point of level and corresponding stride - IndexType firstOfLevel = getFirstIndexOfLevel1d(dfg, dim, l); - IndexType parentOffset = static_cast(std::pow(2, lmax - l)); - IndexType levelStride = parentOffset * 2; - - for (IndexType idx = firstOfLevel; idx <= idxMax; idx += levelStride) { - // get local 1d idx - IndexType lidx = idx - dfg.getLowerBounds()[dim]; - - // loop over all possible xBlocks - for (IndexType localLinIdxBlockStart = 0; localLinIdxBlockStart < dfg.getNrLocalElements(); - localLinIdxBlockStart += xSize) { - // get localIndexVector of block start - dfg.getLocalVectorIndex(localLinIdxBlockStart, localIndexVector); - - if (localIndexVector[dim] == lidx) { - // hierarchize this block - - assert(localIndexVector[0] == 0); - - dfg.getGlobalVectorIndex(localIndexVector, baseGlobalIndexVector); - - globalIndexVectorCenter = baseGlobalIndexVector; - globalIndexVectorLeft = baseGlobalIndexVector; - globalIndexVectorRight = baseGlobalIndexVector; - globalIndexVectorCenter[dim] = idx; - globalIndexVectorLeft[dim] = idx - parentOffset; - globalIndexVectorRight[dim] = idx + parentOffset; - - // translate global indices vector to pointers - FG_ELEMENT* center = lookupTable.getData(globalIndexVectorCenter); - - // when no boundary in this dimension we have to check if - // 1d indices outside domain - FG_ELEMENT* left = NULL; - FG_ELEMENT* right = NULL; - - if (globalIndexVectorLeft[dim] > 0) { - left = lookupTable.getData(globalIndexVectorLeft); - } - - if (globalIndexVectorRight[dim] < dfg.getGlobalSizes()[dim]) { - right = lookupTable.getData(globalIndexVectorRight); - } +template +void dehierarchizeN_opt_dg(DFGEnsemble& dfgEnsemble, std::vector>& lookupTables, + const DimType dim) { + assert(dfgEnsemble.getDFG(0).returnBoundaryFlags()[dim] == boundary); - if (left != NULL && right != NULL) { - // hierarchization kernel inner points - for (IndexType i = 0; i < xSize; ++i) { - center[i] -= 0.5 * left[i]; - center[i] -= 0.5 * right[i]; - } - } + const LevelType lmax = dfgEnsemble.getDFG(0).getLevels()[dim]; + const IndexType size = dfgEnsemble.getDFG(0).getNrLocalElements(); + const IndexType stride = dfgEnsemble.getDFG(0).getLocalOffsets()[dim]; + const IndexType ndim = dfgEnsemble.getDFG(0).getLocalSizes()[dim]; + const IndexType jump = stride * ndim; + const IndexType nbrOfPoles = size / ndim; - if (left == NULL && right != NULL) { - // hierarchization kernel left point does not exist - for (IndexType i = 0; i < xSize; ++i) { - center[i] -= 0.5 * right[i]; - } - } + // loop over poles + const IndexType gstart = dfgEnsemble.getDFG(0).getLowerBounds()[dim]; - if (left != NULL && right == NULL) { - // hierarchization kernel right point does not exist - for (IndexType i = 0; i < xSize; ++i) { - center[i] -= 0.5 * left[i]; - } + #pragma omp parallel + { + IndexVector localIndexVector(dfgEnsemble.getDFG(0).getDimension()); + IndexVector tmpGlobalIndexVector(dfgEnsemble.getDFG(0).getDimension()); + + std::vector> tmp(dfgEnsemble.getNumFullGrids(), + std::vector(dfgEnsemble.getDFG(0).getGlobalSizes()[dim])); + +#pragma omp for // default(none)// firstprivate(lo) + for (IndexType nn = 0; nn < nbrOfPoles; + ++nn) { // integer operations form bottleneck here -- nested loops are twice as slow + lldiv_t divresult = std::lldiv(nn, stride); + IndexType start = divresult.quot * jump + divresult.rem; // localer lin index start of pole + + // compute global vector index of start + dfgEnsemble.getDFG(0).getLocalVectorIndex(start, localIndexVector); + assert(localIndexVector[dim] == 0); + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + dfgEnsemble.getDFG(0).getGlobalVectorIndex(localIndexVector, tmpGlobalIndexVector); + + // copy local data to tmp + for (IndexType i = 0; i < ndim; ++i) tmp[j][gstart + i] = dfg.getElementVector()[start + stride * i]; + + // copy remote data to tmp + std::vector >& rdcs = lookupTables[j].getRDCVector(); + + if (rdcs.size() > 0) { + // go through remote containers + for (size_t i = 0; i < rdcs.size(); ++i) { + IndexType global1didx = rdcs[i].getKeyIndex(); + tmpGlobalIndexVector[dim] = global1didx; + tmp[j][global1didx] = *rdcs[i].getData(tmpGlobalIndexVector); } + } + } - // for case where left and right outside domain, do nothing + // dehierarchization kernel + if (boundary) { + // dehierarchize tmp array with hupp function + // need to dehierarchize for every pair of ensemble grids that are neighbors in x + auto lowerIndices = dfgEnsemble.getIndicesOfLowerGridsInDimension(dim); + for (auto& index : lowerIndices) { + dehierarchizeX_opt_boundary_kernel_dg(&tmp[index][0], + &tmp[GridEnumeration::getUpperNeighborInDimension(static_cast(dim), index)][0], + lmax, 0, 1); } + } else { + assert(false && "Not implemented for no boundary"); } - } - } -} + // copy pole back + for (size_t j = 0; j < dfgEnsemble.getNumFullGrids(); ++j) { + auto& dfg = dfgEnsemble.getDFG(j); + for (IndexType i = 0; i < ndim; ++i) dfg.getElementVector()[start + stride * i] = tmp[j][gstart + i]; + } + }//# End pragma omp for + }//# end pragma parallel +} } // unnamed namespace namespace combigrid { @@ -2365,7 +2384,7 @@ class DistributedHierarchization { exchangeData1d(dfg, dim, remoteData); LookupTable lookupTable(remoteData, dfg, dim); - + if (dfg.returnBoundaryFlags()[dim] == true) { hierarchizeX_opt_boundary(dfg, lookupTable); } else { @@ -2384,10 +2403,12 @@ class DistributedHierarchization { if (dfg.returnBoundaryFlags()[dim] == true) { // hierarchizeN_boundary( dfg, lookupTable, dim ); - hierarchizeN_opt_boundary(dfg, lookupTable, dim); + hierarchizeN_opt(dfg, lookupTable, dim); } else { - hierarchizeN_opt_noboundary(dfg, lookupTable, dim); + hierarchizeN_opt(dfg, lookupTable, dim); } + + ++hierCount; } } @@ -2412,13 +2433,15 @@ class DistributedHierarchization { exchangeData1dDehierarchization(dfg, dim, remoteData); LookupTable lookupTable(remoteData, dfg, dim); - if (dfg.returnBoundaryFlags()[dim] == true) { + // Stats::startEvent("only dehierarchize"); + if (dfg.returnBoundaryFlags()[dim] == true) { // TODO dehierarchizeX_opt_boundary(dfg, lookupTable); } else { dehierarchizeX_opt_noboundary(dfg, lookupTable); } + // Stats::stopEvent("only dehierarchize"); } - + // // dehierarchize other dimensions for (DimType dim = 1; dim < dfg.getDimension(); ++dim) { if (!dims[dim]) continue; @@ -2428,11 +2451,13 @@ class DistributedHierarchization { exchangeData1dDehierarchization(dfg, dim, remoteData); LookupTable lookupTable(remoteData, dfg, dim); + // Stats::startEvent("only dehierarchize"); if (dfg.returnBoundaryFlags()[dim] == true) { - dehierarchizeN_opt_boundary(dfg, lookupTable, dim); + dehierarchizeN_opt(dfg, lookupTable, dim); } else { - dehierarchizeN_opt_noboundary(dfg, lookupTable, dim); + dehierarchizeN_opt(dfg, lookupTable, dim); } + // Stats::stopEvent("only dehierarchize"); } } @@ -2452,6 +2477,115 @@ class DistributedHierarchization { DistributedHierarchization::dehierarchize( dfg, hierarchizationDims); } + + + // Ensemble variants + + // inplace hierarchization + static void hierarchize(DFGEnsemble& dfgEnsemble, const std::vector& dims) { + assert(dfgEnsemble.getDFG(0).getDimension() > 0); + assert(dfgEnsemble.getDFG(0).getDimension() == dims.size()); + + // hierarchize first dimension + if (dims[0]) { + DimType dim = 0; + + // exchange data first dimension + std::vector >> remoteData (dfgEnsemble.getNumFullGrids()); + std::vector> lookupTables; + for (size_t i = 0; i < dfgEnsemble.getNumFullGrids(); ++i) { + exchangeData1d(dfgEnsemble.getDFG(i), dim, remoteData[i]); + lookupTables.emplace_back(remoteData[i], dfgEnsemble.getDFG(i), dim); + } + if (dfgEnsemble.getDFG(0).returnBoundaryFlags()[dim] == true) { + hierarchizeX_opt_boundary_dg(dfgEnsemble, lookupTables); + } else { + hierarchizeX_opt_noboundary_dg(dfgEnsemble, lookupTables); + } + } + + // hierarchize other dimensions + for (DimType dim = 1; dim < dfgEnsemble.getDFG(0).getDimension(); ++dim) { + if (!dims[dim]) continue; + + // exchange data + std::vector >> remoteData (dfgEnsemble.getNumFullGrids()); + std::vector> lookupTables; + for (size_t i = 0; i < dfgEnsemble.getNumFullGrids(); ++i) { + exchangeData1d(dfgEnsemble.getDFG(i), dim, remoteData[i]); + lookupTables.emplace_back(remoteData[i], dfgEnsemble.getDFG(i), dim); + } + + if (dfgEnsemble.getDFG(0).returnBoundaryFlags()[dim] == true) { + // hierarchizeN_boundary( dfg, lookupTable, dim ); + hierarchizeN_opt_dg(dfgEnsemble, lookupTables, dim); + } else { + hierarchizeN_opt_dg(dfgEnsemble, lookupTables, dim); + } + + ++hierCount; + } + } + + static void hierarchize(DFGEnsemble& dfgEnsemble) { + auto& dfg = dfgEnsemble.getDFG(0); + std::vector dims(dfg.getDimension(), true); + hierarchize(dfgEnsemble, dims); + } + + // inplace dehierarchization + static void dehierarchize(DFGEnsemble& dfgEnsemble, const std::vector& dims) { + auto& dfg = dfgEnsemble.getDFG(0); + assert(dfg.getDimension() > 0); + assert(dfg.getDimension() == dims.size()); + + // dehierarchize first dimension + if (dims[0]) { + DimType dim = 0; + + // exchange data first dimension + std::vector >> remoteData (dfgEnsemble.getNumFullGrids()); + std::vector> lookupTables; + for (size_t i = 0; i < dfgEnsemble.getNumFullGrids(); ++i) { + exchangeData1dDehierarchization(dfgEnsemble.getDFG(i), dim, remoteData[i]); + lookupTables.emplace_back(remoteData[i], dfgEnsemble.getDFG(i), dim); + } + + // Stats::startEvent("only dehierarchize"); + if (dfg.returnBoundaryFlags()[dim] == true) { // TODO + dehierarchizeX_opt_boundary_dg(dfgEnsemble, lookupTables); + } else { + dehierarchizeX_opt_noboundary_dg(dfgEnsemble, lookupTables); + } + // Stats::stopEvent("only dehierarchize"); + } + + // dehierarchize other dimensions + for (DimType dim = 1; dim < dfg.getDimension(); ++dim) { + if (!dims[dim]) continue; + + // exchange data + std::vector >> remoteData (dfgEnsemble.getNumFullGrids()); + std::vector> lookupTables; + for (size_t i = 0; i < dfgEnsemble.getNumFullGrids(); ++i) { + exchangeData1dDehierarchization(dfgEnsemble.getDFG(i), dim, remoteData[i]); + lookupTables.emplace_back(remoteData[i], dfgEnsemble.getDFG(i), dim); + } + + // Stats::startEvent("only dehierarchize"); + if (dfg.returnBoundaryFlags()[dim] == true) { + dehierarchizeN_opt_dg(dfgEnsemble, lookupTables, dim); + } else { + dehierarchizeN_opt_dg(dfgEnsemble, lookupTables, dim); + } + // Stats::stopEvent("only dehierarchize"); + } + } + + static void dehierarchize(DFGEnsemble& dfgEnsemble) { + std::vector dims(dfgEnsemble.getDFG(0).getDimension(), true); + dehierarchize(dfgEnsemble, dims); + } }; // class DistributedHierarchization diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.cpp b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.cpp index 60cf6d5b5..703cc5f48 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.cpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.cpp @@ -11,6 +11,7 @@ ProcessGroupManager::ProcessGroupManager(RankType pgroupRootID) statusRequestFT_(nullptr) {} bool ProcessGroupManager::runfirst(Task* t) { + return storeTaskReferenceAndSendTaskToProcessGroup(t, RUN_FIRST); } @@ -74,6 +75,7 @@ bool ProcessGroupManager::runnext() { sendSignalAndReceive(RUN_NEXT); + return true; } @@ -167,7 +169,7 @@ void sendLevelVector(const LevelVector& leval, RankType pgroupRootID){ bool ProcessGroupManager::parallelEval(const LevelVector& leval, std::string& filename) { // can only send sync signal when in wait state, so check first assert(status_ == PROCESS_GROUP_WAIT); - + sendSignalToProcessGroup(PARALLEL_EVAL); sendLevelVector(leval, pgroupRootID_); diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.hpp index 424ef0cb5..fe35dda2f 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupManager.hpp @@ -192,6 +192,7 @@ inline StatusType ProcessGroupManager::waitStatus() { inline complex ProcessGroupManager::eval(const std::vector& x) { // todo: implement + throw std::runtime_error("Not yet implemented: " + std::string(x.begin(), x.end()) + __FILE__ + " " + std::to_string(__LINE__)); return complex(0.0, 0.0); diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.cpp b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.cpp index 310f5b45e..466a023de 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.cpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.cpp @@ -60,8 +60,7 @@ SignalType ProcessGroupWorker::wait() { if (status_ != PROCESS_GROUP_WAIT) { #ifdef DEBUG_OUTPUT int myRank = theMPISystem()->getWorldRank(); - std::cout << "status is " << status_ << "of rank " << myRank << "\n"; - std::cout << "executing next task\n"; + #endif return RUN_NEXT; } @@ -102,19 +101,17 @@ SignalType ProcessGroupWorker::wait() { // run first task // if isGENE, this is done in GENE's worker_routines.cpp - if (!isGENE) { - Stats::startEvent("worker run"); - } + // if (!isGENE) { + // Stats::startEvent("worker run"); + // } Stats::Event e = Stats::Event(); currentTask_->run(theMPISystem()->getLocalComm()); e.end = std::chrono::high_resolution_clock::now(); - // std::cout << "from runnext "; processDuration(*currentTask_, e, getCommSize(theMPISystem()->getLocalComm())); - - if (!isGENE) { - Stats::stopEvent("worker run"); - } + // if (!isGENE) { + // Stats::stopEvent("worker run"); + // } } else { std::cout << "Possible error: No tasks! \n"; } @@ -318,6 +315,7 @@ void ProcessGroupWorker::ready() { std::cout << "rank " << globalRank << " fault detected" << std::endl; } } + if (status_ != PROCESS_GROUP_FAIL) { // check if there are unfinished tasks // all the tasks that are not the first in their process group will be run in this loop @@ -357,7 +355,6 @@ void ProcessGroupWorker::ready() { status_ = PROCESS_GROUP_WAIT; } } - // send ready status to manager MASTER_EXCLUSIVE_SECTION { StatusType status = status_; @@ -373,7 +370,6 @@ void ProcessGroupWorker::ready() { // reset current task currentTask_ = NULL; - // if failed proc in this group detected the alive procs go into recovery state if (ENABLE_FT) { if (status_ == PROCESS_GROUP_FAIL) { @@ -472,7 +468,6 @@ void ProcessGroupWorker::combineUniform() { // the dsg can be smaller than lmax because the highest subspaces do not have // to be exchanged // todo: use a flag to switch on/off optimized combination - reduceSparseGridCoefficients(lmax, lmin, combiParameters_.getNumberOfCombinations(), currentCombi_, combiParameters_.getLMinReductionVector(), combiParameters_.getLMaxReductionVector()); @@ -508,21 +503,32 @@ void ProcessGroupWorker::combineUniform() { //real localMax(0.0); // std::vector beforeCombi; for (Task* t : tasks_) { - for (int g = 0; g < numGrids; g++) { - DistributedFullGrid& dfg = t->getDistributedFullGrid(g); - // std::vector datavector(dfg.getElementVector()); - // beforeCombi = datavector; - // compute max norm - /* - real max = dfg.getLpNorm(0); - if( max > localMax ) - localMax = max; - */ + auto dfgEnsemble = t->getDFGEnsemble(); + if (dfgEnsemble != nullptr) { + // hierarchize dfgEnsemble + DistributedHierarchization::hierarchize( + *dfgEnsemble, combiParameters_.getHierarchizationDims()); - // hierarchize dfg - DistributedHierarchization::hierarchize( - dfg, combiParameters_.getHierarchizationDims()); + } else { + for (int g = 0; g < numGrids; g++) { + DistributedFullGrid& dfg = t->getDistributedFullGrid(g); + // std::vector datavector(dfg.getElementVector()); + // beforeCombi = datavector; + // compute max norm + /* + real max = dfg.getLpNorm(0); + if( max > localMax ) + localMax = max; + */ + + // hierarchize dfg + DistributedHierarchization::hierarchize( + dfg, combiParameters_.getHierarchizationDims()); + } + } + for (int g = 0; g < numGrids; g++) { + DistributedFullGrid& dfg = t->getDistributedFullGrid(g); // lokales reduce auf sg -> dfg.addToUniformSG(*combinedUniDSGVector_[g], combiParameters_.getCoeff(t->getID())); #ifdef DEBUG_OUTPUT @@ -603,7 +609,6 @@ void ProcessGroupWorker::parallelEval() { else assert(false && "not yet implemented"); } - // cf https://stackoverflow.com/questions/874134/find-out-if-string-ends-with-another-string-in-c static bool endsWith(const std::string& str, const std::string& suffix) { @@ -651,20 +656,40 @@ void ProcessGroupWorker::parallelEvalUniform() { MPIUtils::broadcastClass(&filename, theMPISystem()->getMasterRank(), theMPISystem()->getLocalComm()); - for (int g = 0; g < numGrids; g++) { // loop over all grids and plot them - // create dfg - bool forwardDecomposition = combiParameters_.getForwardDecomposition(); - DistributedFullGrid dfg( + bool forwardDecomposition = combiParameters_.getForwardDecomposition(); + + auto dfgEnsembleTaskZero = tasks_[0]->getDFGEnsemble(); + if (dfgEnsembleTaskZero != nullptr) { + // create reference dfgEnsemble + DFGEnsemble dfgEnsemble( dim, leval, theMPISystem()->getLocalComm(), combiParameters_.getBoundary(), combiParameters_.getParallelization(), forwardDecomposition); - this->fillDFGFromDSGU(dfg, g); - // save dfg to file with MPI-IO - auto pos = filename.find("."); - if (pos != std::string::npos){ - // if filename contains ".", insert grid number before that - filename.insert(pos, "_" + std::to_string(g)); + this->fillDFGEnsembleFromDSGUs(dfgEnsemble); + for (int g = 0; g < numGrids; g++) { + auto& dfg = dfgEnsemble.getDFG(g); + // save dfg to file with MPI-IO + auto pos = filename.find("."); + if (pos != std::string::npos){ + // if filename contains ".", insert grid number before that + filename.insert(pos, "_" + std::to_string(g)); + } + dfg.writePlotFile(filename.c_str()); + } + } else { + for (int g = 0; g < numGrids; g++) { // loop over all grids and plot them + // create dfg + DistributedFullGrid dfg( + dim, leval, theMPISystem()->getLocalComm(), combiParameters_.getBoundary(), + combiParameters_.getParallelization(), forwardDecomposition); + this->fillDFGFromDSGU(dfg, g); + // save dfg to file with MPI-IO + auto pos = filename.find("."); + if (pos != std::string::npos){ + // if filename contains ".", insert grid number before that + filename.insert(pos, "_" + std::to_string(g)); + } + dfg.writePlotFile(filename.c_str()); } - dfg.writePlotFile(filename.c_str()); } } @@ -697,6 +722,7 @@ void sendEvalNorms(const DistributedFullGrid& dfg){ } void ProcessGroupWorker::parallelEvalNorm() { + assert(combiParameters_.getNumGrids() == 1); auto leval = receiveLevalAndBroadcast(); const int dim = static_cast(leval.size()); bool forwardDecomposition = combiParameters_.getForwardDecomposition(); @@ -711,6 +737,7 @@ void ProcessGroupWorker::parallelEvalNorm() { } void ProcessGroupWorker::evalAnalyticalOnDFG() { + assert(combiParameters_.getNumGrids() == 1); auto leval = receiveLevalAndBroadcast(); const int dim = static_cast(leval.size()); bool forwardDecomposition = combiParameters_.getForwardDecomposition(); @@ -731,6 +758,7 @@ void ProcessGroupWorker::evalAnalyticalOnDFG() { } void ProcessGroupWorker::evalErrorOnDFG() { + assert(combiParameters_.getNumGrids() == 1); auto leval = receiveLevalAndBroadcast(); const int dim = static_cast(leval.size()); bool forwardDecomposition = combiParameters_.getForwardDecomposition(); @@ -899,26 +927,35 @@ void ProcessGroupWorker::updateCombiParameters() { void ProcessGroupWorker::setCombinedSolutionUniform(Task* t) { assert(combinedUniDSGVector_.size() != 0); assert(combiParametersSet_); + auto dfgEnsemble = t->getDFGEnsemble(); + if (dfgEnsemble != nullptr) { + this->fillDFGEnsembleFromDSGUs(*dfgEnsemble); + } else { + int numGrids = static_cast(combiParameters_ + .getNumGrids()); // we assume here that every task has the same number of grids - int numGrids = static_cast(combiParameters_ - .getNumGrids()); // we assume here that every task has the same number of grids - - for (int g = 0; g < numGrids; g++) { - assert(combinedUniDSGVector_[g] != NULL); + for (int g = 0; g < numGrids; g++) { + assert(combinedUniDSGVector_[g] != NULL); - // get handle to dfg - DistributedFullGrid& dfg = t->getDistributedFullGrid(g); + // get handle to dfg + DistributedFullGrid& dfg = t->getDistributedFullGrid(g); - DistributedHierarchization::fillDFGFromDSGU(dfg, *combinedUniDSGVector_[g], combiParameters_.getHierarchizationDims()); + DistributedHierarchization::fillDFGFromDSGU(dfg, *combinedUniDSGVector_[g], combiParameters_.getHierarchizationDims()); + } } } void ProcessGroupWorker::updateTaskWithCurrentValues(Task& taskToUpdate, size_t numGrids) { - for (int g = 0; g < numGrids; g++) { + auto dfgEnsemble = taskToUpdate.getDFGEnsemble(); + if (dfgEnsemble != nullptr) { + this->fillDFGEnsembleFromDSGUs(*dfgEnsemble); + } else { + for (decltype(numGrids) g = 0; g < numGrids; g++) { // get handle to dfg - DistributedFullGrid& dfg = taskToUpdate.getDistributedFullGrid(g); + DistributedFullGrid& dfg = taskToUpdate.getDistributedFullGrid(static_cast(g)); - DistributedHierarchization::fillDFGFromDSGU(dfg, *combinedUniDSGVector_[g], combiParameters_.getHierarchizationDims()); + DistributedHierarchization::fillDFGFromDSGU(dfg, *combinedUniDSGVector_[g], + combiParameters_.getHierarchizationDims()); // std::vector datavector(dfg.getElementVector()); // afterCombi = datavector; @@ -930,6 +967,20 @@ void ProcessGroupWorker::updateTaskWithCurrentValues(Task& taskToUpdate, size_t } */ } + } +} + +void ProcessGroupWorker::fillDFGEnsembleFromDSGUs(DFGEnsemble& dfgEnsemble){ + auto numGrids = combiParameters_.getNumGrids(); + assert(dfgEnsemble.getNumFullGrids() == static_cast(numGrids)); + for (decltype(numGrids) g = 0; g < numGrids; g++) { + auto& dfg = dfgEnsemble.getDFG(g); + // fill dfg with hierarchical coefficients from distributed sparse grid + dfg.extractFromUniformSG(*combinedUniDSGVector_[g]); + } + + // dehierarchize dfg + DistributedHierarchization::dehierarchize(dfgEnsemble, combiParameters_.getHierarchizationDims()); } } /* namespace combigrid */ diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.hpp index 53bc4811f..c66ccece3 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessGroupWorker.hpp @@ -115,7 +115,10 @@ class ProcessGroupWorker { /** helper functions for parallelEval and norm calculations*/ LevelVector receiveLevalAndBroadcast(); + void fillDFGFromDSGU(DistributedFullGrid& dfg, IndexType g = 0); + + void fillDFGEnsembleFromDSGUs(DFGEnsemble& dfgEnsemble); }; inline Task* ProcessGroupWorker::getCurrentTask() { return currentTask_; } diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.cpp b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.cpp index ea8f92e5d..76a791fe4 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.cpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.cpp @@ -23,17 +23,18 @@ void ProcessManager::sortTasks(){ bool ProcessManager::runfirst() { // sort instances in decreasing order sortTasks(); - assert(tasks_.size() >= pgroups_.size()); for (size_t i = 0; i < tasks_.size(); ++i) { // wait for available process group ProcessGroupManagerID g = wait(); - + std::cout <<"ID:"<< tasks_[i]->getID() << std::endl; // assign instance to group g->runfirst(tasks_[i]); } + std::cout <<"this is the end"<< std::endl; + bool group_failed = waitAllFinished(); //size_t numDurationsToReceive = tasks_.size(); //TODO make work for failure receiveDurationsOfTasksFromGroupMasters(0); @@ -66,12 +67,11 @@ bool ProcessManager::runnext() { assert(!group_failed && "runnext must not be called when there are failed groups"); - for (size_t i = 0; i < pgroups_.size(); ++i) { + for (size_t i = 0; i < pgroups_.size(); ++i) { pgroups_[i]->runnext(); } group_failed = waitAllFinished(); - //size_t numDurationsToReceive = tasks_.size(); //TODO make work for failure if(!group_failed) receiveDurationsOfTasksFromGroupMasters(0); @@ -358,9 +358,9 @@ void ProcessManager::parallelEval(const LevelVector& leval, std::string& filenam assert(!fail && "should not fail here"); } - + std::cout<<"parallel in mansger"; assert(groupID < pgroups_.size()); - + std::cout<<"parallel in mansger"; auto g = pgroups_[groupID]; g->parallelEval(leval, filename); diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.hpp index ebad7d8e6..63989cc8c 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/manager/ProcessManager.hpp @@ -193,7 +193,7 @@ inline FG_ELEMENT ProcessManager::eval(const std::vector& coords) { } FG_ELEMENT res(0); - + // call eval function of each process group for (size_t i = 0; i < pgroups_.size(); ++i) res += pgroups_[i]->eval(coords); @@ -210,7 +210,6 @@ void ProcessManager::combine() { // wait until all process groups are in wait state // after sending the exit signal checking the status might not be possible size_t numWaiting = 0; - while (numWaiting != pgroups_.size()) { numWaiting = 0; diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGrid.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGrid.hpp index f74c37729..0ff540143 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGrid.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGrid.hpp @@ -288,6 +288,8 @@ void DistributedSparseGrid::setSizes() { // loop over all dimensions for (size_t j = 0; j < dim_; ++j) { + + // if we have reached the lowest level, consider boundary points, too if (l[j] == 1 && boundary_[j]) { sizes[j] = (size_t(std::pow(2.0, real(l[j] - 1))) + size_t(2)); } else { @@ -295,9 +297,9 @@ void DistributedSparseGrid::setSizes() { } } - IndexType tmp(1); + IndexType tmp = std::accumulate(sizes.begin(), sizes.end(), 1, std::multiplies()); - for (auto s : sizes) tmp *= s; + // for (auto s : sizes) tmp *= s; subspaces_[i].dataSize_ = size_t(tmp); } diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGridUniform.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGridUniform.hpp index 83162ca5b..e9cb6a296 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGridUniform.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/sparsegrid/DistributedSparseGridUniform.hpp @@ -9,6 +9,7 @@ #include +using namespace combigrid; /* * Instead of having private static functions, I put these functions in an @@ -21,9 +22,9 @@ namespace { template struct SubspaceSGU { - combigrid::LevelVector level_; + LevelVector level_; - combigrid::IndexVector sizes_; + IndexVector sizes_; size_t dataSize_; @@ -111,6 +112,8 @@ class DistributedSparseGridUniform { inline int getCommunicatorSize() const; + void zeroOutSubspaces(); + private: void createLevels(DimType dim, const LevelVector& nmax, const LevelVector& lmin); @@ -288,6 +291,18 @@ void DistributedSparseGridUniform::setSizes() { } } +template +void DistributedSparseGridUniform::zeroOutSubspaces() { + #pragma omp parallel for schedule(dynamic,4) + for (size_t i = 0; i < subspaces_.size(); ++i) { + for (size_t j = 0; j < subspaces_[i].data_.size(); j++) + { + subspaces_[i].data_[j]=0; + } + + } +} + template inline const LevelVector& DistributedSparseGridUniform::getLevelVector(size_t i) const { return levels_[i]; diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/task/Task.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/task/Task.hpp index 05eb3856a..c6dbedd0b 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/task/Task.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/task/Task.hpp @@ -9,6 +9,7 @@ #include "sgpp/distributedcombigrid/fault_tolerance/FaultCriterion.hpp" #include "sgpp/distributedcombigrid/fault_tolerance/StaticFaults.hpp" #include "sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp" +#include "sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp" #include "sgpp/distributedcombigrid/fullgrid/FullGrid.hpp" #include "sgpp/distributedcombigrid/mpi/MPISystem.hpp" #include "sgpp/distributedcombigrid/utils/LevelVector.hpp" @@ -49,12 +50,14 @@ class Task { inline const std::vector& getBoundary() const; inline int getID() const; + virtual size_t getDOFs(){return 1;}; virtual void run(CommunicatorType lcomm) = 0; virtual void changeDir(CommunicatorType lcomm) { // do nothing } + virtual void init(CommunicatorType lcomm, std::vector decomposition = std::vector()) = 0; @@ -71,6 +74,9 @@ class Task { // This method returns the local part of the n-th distributedFullGrid virtual DistributedFullGrid& getDistributedFullGrid(int n = 0) = 0; + // return the number of grids in a given task; default is one + virtual size_t getNumGrids() {return 1;} + virtual void setZero() = 0; // override if there is adaptive timestepping in the solver @@ -94,6 +100,9 @@ class Task { return faultCriterion_->init(startTimeIteration, t_fault); } + // override if there is a DFG ensemble in the task + virtual DFGEnsemble* getDFGEnsemble() const { return nullptr; } + private: friend class boost::serialization::access; diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Config.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Config.hpp index 0c2aa323b..ffc8a9989 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Config.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Config.hpp @@ -27,6 +27,14 @@ typedef double real; // the datatype for complex numbers will change accordingly. do not modify this. typedef std::complex complex; +/* set the datatype for the values stored in any type of grid. essentially you + * have two options: real values or complex numbers. other datatypes like int + * have not been tested and operations on the grids like evaluation or + * hierarchization might produce unexpected results. + */ +typedef real CombiDataType; +// typedef complex CombiDataType; + /* nonblocking mpi collective calls (MPI_Iallreduce and the likes) usually yield * better performance in some of the operations in CombiCom. if you observe * problems with these functions uncomment to fall back to blocking counterpart @@ -66,7 +74,8 @@ typedef std::complex complex; #endif #ifdef ISGENE constexpr bool isGENE = true; //TODO move this switch to a more sensible place - // todo static assert complex is combidatatype + // running gene requires complex numbers for combination + static_assert(std::is_same::value); #else constexpr bool isGENE = false; #endif diff --git a/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Stats.hpp b/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Stats.hpp index f384a2e00..df315dedc 100644 --- a/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Stats.hpp +++ b/distributedcombigrid/src/sgpp/distributedcombigrid/utils/Stats.hpp @@ -14,7 +14,7 @@ #include "sgpp/distributedcombigrid/mpi/MPISystem.hpp" /* comment this line to switch of timing */ -//#define TIMING +#define TIMING namespace combigrid { @@ -97,7 +97,7 @@ class Stats { static std::unordered_map attributes_; }; -#ifdef TIMING +//#ifdef TIMING inline void Stats::initialize() { assert(!initialized_); @@ -222,7 +222,7 @@ inline void Stats::write(const std::string& path, CommunicatorType comm) { MPI_File_write_at_all(fh, pos, buffer.str().c_str(), (int)len, MPI_CHAR, MPI_STATUS_IGNORE); MPI_File_close(&fh); } -#else +/*#else inline void Stats::initialize() {} inline void Stats::finalize() {} inline void Stats::startEvent(const std::string& name) { @@ -230,7 +230,7 @@ inline void Stats::startEvent(const std::string& name) { } inline void Stats::setAttribute(const std::string& name, const std::string& value) {} inline void Stats::write(const std::string& path, CommunicatorType comm) {} -#endif +#endif */ inline const Stats::Event Stats::stopEvent(const std::string& name) { // check if event is not stopped already diff --git a/distributedcombigrid/tests/test_distributedfullgrid.cpp b/distributedcombigrid/tests/test_distributedfullgrid.cpp index 16c9d6221..a6890f924 100644 --- a/distributedcombigrid/tests/test_distributedfullgrid.cpp +++ b/distributedcombigrid/tests/test_distributedfullgrid.cpp @@ -31,8 +31,38 @@ class TestFn { } }; -void checkDistributedFullgrid(LevelVector& levels, IndexVector& procs, std::vector& boundary, +template +void compareResults(const DimType dim, DistributedFullGrid& dfg, + DistributedFullGrid& dfg2) { + for (IndexType li = 0; li < dfg.getNrLocalElements(); ++li) { + std::vector coords(dim); + dfg.getCoordsLocal(li, coords); + BOOST_TEST(2.1 * dfg.getData()[li] == dfg2.getData()[li]); + } +} + +template +void testGatherFullGrid(LevelVector& levels, std::vector& boundary, TestFn f, + DistributedFullGrid& dfg, CommunicatorType comm) { + const DimType dim = levels.size(); + + // test gatherFullgrid + FullGrid> fg(dim, levels, boundary); + dfg.gatherFullGrid(fg, 0); + + // only check on rank 0 + if (TestHelper::getRank(comm) == 0) { + for (size_t i = 0; i < static_cast(fg.getNrElements()); ++i) { + std::vector coords(dim); + fg.getCoords(i, coords); + BOOST_TEST(fg.getData()[i] == f(coords)); + } + } +} + +void checkDistributedFullgridLinDG(LevelVector& levels, IndexVector& procs, std::vector& boundary, int size, bool forward = false) { + using dfgTestCombiType = std::complex; CommunicatorType comm = TestHelper::getComm(size); if (comm == MPI_COMM_NULL) return; @@ -44,7 +74,7 @@ void checkDistributedFullgrid(LevelVector& levels, IndexVector& procs, std::vect const DimType dim = levels.size(); // create dfg - DistributedFullGrid> dfg(dim, levels, comm, boundary, procs, forward); + DistributedFullGrid dfg(dim, levels, comm, boundary, procs, forward); IndexType nrElements = 1; for (DimType d = 0; d < dim; ++d) { @@ -65,17 +95,56 @@ void checkDistributedFullgrid(LevelVector& levels, IndexVector& procs, std::vect for (DimType d = 0; d < dim; ++d) { lmax[d] *= 2; } - DistributedSparseGridUniform> dsg(dim, lmax, lmin, boundary, comm); + + DistributedSparseGridUniform dsg(dim, lmax, lmin, boundary, comm); dfg.addToUniformSG(dsg, 2.1); - DistributedFullGrid> dfg2(dim, levels, comm, boundary, procs, forward); + DistributedFullGrid dfg2(dim, levels, comm, boundary, procs, forward); dfg2.extractFromUniformSG(dsg); + compareResults(dim, dfg, dfg2); + testGatherFullGrid(levels, boundary, f, dfg, comm); +} + +void checkDistributedFullgrid(LevelVector& levels, IndexVector& procs, std::vector& boundary, + int size, bool forward = false) { + using dfgTestCombiType = std::complex; + CommunicatorType comm = TestHelper::getComm(size); + if (comm == MPI_COMM_NULL) return; + + TestFn f; + const DimType dim = levels.size(); + + // create dfg + DistributedFullGrid dfg(dim, levels, comm, boundary, procs, forward); + + IndexType nrElements = 1; + for (DimType d = 0; d < dim; ++d) { + nrElements *= (1 << levels[d]) + (boundary[d] ? 1 : -1); + } + BOOST_CHECK(nrElements == dfg.getNrElements()); + + // set function values for (IndexType li = 0; li < dfg.getNrLocalElements(); ++li) { std::vector coords(dim); dfg.getCoordsLocal(li, coords); - BOOST_TEST(2.1 * dfg.getData()[li] == dfg2.getData()[li]); + dfg.getData()[li] = f(coords); + } + + // test addToUniformSG, extractFromUniformSG + LevelVector lmin = levels; + LevelVector lmax = levels; + for (DimType d = 0; d < dim; ++d) { + lmax[d] *= 2; } + DistributedSparseGridUniform dsg(dim, lmax, lmin, boundary, comm); + dfg.addToUniformSG(dsg, 2.1); + DistributedFullGrid dfg2(dim, levels, comm, boundary, procs, forward); + dfg2.extractFromUniformSG(dsg); + + compareResults(dim, dfg, dfg2); + testGatherFullGrid(levels, boundary, f, dfg, comm); + if (TestHelper::getRank(comm) == 0) { std::cout << "test distributedfullgrid norm " << levels << procs << std::endl; } @@ -131,19 +200,6 @@ void checkDistributedFullgrid(LevelVector& levels, IndexVector& procs, std::vect } } - // test gatherFullgrid - FullGrid> fg(dim, levels, boundary); - dfg.gatherFullGrid(fg, 0); - - // only check on rank 0 - if (TestHelper::getRank(comm) == 0) { - for (size_t i = 0; i < static_cast(fg.getNrElements()); ++i) { - std::vector coords(dim); - fg.getCoords(i, coords); - BOOST_TEST(fg.getData()[i] == f(coords)); - } - } - // std::stringstream ss; // ss << "test_dfg_" << levels << procs << boundary << forward << ".vtk"; // dfg.writePlotFileVTK(ss.str().c_str()); diff --git a/distributedcombigrid/tests/test_ftolerance.cpp b/distributedcombigrid/tests/test_ftolerance.cpp index dc2b1de05..8b0871521 100644 --- a/distributedcombigrid/tests/test_ftolerance.cpp +++ b/distributedcombigrid/tests/test_ftolerance.cpp @@ -18,7 +18,7 @@ #include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" #include "sgpp/distributedcombigrid/fullgrid/FullGrid.hpp" #include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" -#include "sgpp/distributedcombigrid/loadmodel/LearningLoadModel.hpp" +#include "sgpp/distributedcombigrid/loadmodel/AveragingLoadModel.hpp" #include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" #include "sgpp/distributedcombigrid/manager/ProcessGroupManager.hpp" #include "sgpp/distributedcombigrid/manager/ProcessGroupWorker.hpp" @@ -256,7 +256,7 @@ void checkFtolerance(bool useCombine, bool useFG, double l0err, double l2err, si BOOST_REQUIRE(true); //if things go wrong weirdly, see where things go wrong - #ifdef TIMING +#ifdef TIMING std::unique_ptr loadmodel = std::unique_ptr(new LinearLoadModel()); #else // TIMING std::unique_ptr loadmodel = std::unique_ptr(new LinearLoadModel()); diff --git a/distributedcombigrid/tests/test_hierarchization.cpp b/distributedcombigrid/tests/test_hierarchization.cpp index d9ea62d4e..f40e59917 100644 --- a/distributedcombigrid/tests/test_hierarchization.cpp +++ b/distributedcombigrid/tests/test_hierarchization.cpp @@ -7,6 +7,7 @@ #include #include "sgpp/distributedcombigrid/fullgrid/DistributedFullGrid.hpp" +#include "sgpp/distributedcombigrid/fullgrid/DistributedFullGridEnsemble.hpp" #include "sgpp/distributedcombigrid/fullgrid/FullGrid.hpp" #include "sgpp/distributedcombigrid/hierarchization/DistributedHierarchization.hpp" #include "sgpp/distributedcombigrid/hierarchization/Hierarchization.hpp" @@ -132,6 +133,11 @@ class TestFn_3 { template void checkHierarchization(Functor& f, LevelVector& levels, IndexVector& procs, std::vector& boundary, int size, bool forward = false) { + + if (std::all_of(boundary.begin(), boundary.end(), [](bool i){return i;})) { + checkHierarchizationEnsemble(f, levels, procs, boundary, size, forward); + } + CommunicatorType comm = TestHelper::getComm(size); if (comm == MPI_COMM_NULL) return; @@ -193,11 +199,80 @@ void checkHierarchization(Functor& f, LevelVector& levels, IndexVector& procs, } } +template +void checkHierarchizationEnsemble(Functor& f, LevelVector& levels, IndexVector& procs, + std::vector& boundary, int size, bool forward = false) { + CommunicatorType comm = TestHelper::getComm(size); + if (comm == MPI_COMM_NULL) return; + + const DimType dim = levels.size(); + + // create distributed fg and fill with test function + DFGEnsemble dfgEnsemble(dim, levels, comm, boundary, procs, forward); + for (size_t i = 0; i < dfgEnsemble.getNumFullGrids(); ++i) { + auto& dfg = dfgEnsemble.getDFG(i); + // real offset = std::pow(GridEnumeration::getNumberOfHigherDimensions(i), dim); + real offset = GridEnumeration::getNumberOfHigherDimensions(i); + for (IndexType li = 0; li < dfg.getNrLocalElements(); ++li) { + std::vector coords(dim); + dfg.getCoordsLocal(li, coords); + dfg.getData()[li] = f(coords).real() + offset; + } + } + + for (DimType d = 0; d < dim; ++d) { + std::vector hierarchizationDims(dim, false); + hierarchizationDims[d] = true; + // hierarchize in dimension d + DistributedHierarchization::hierarchize(dfgEnsemble, hierarchizationDims); + + // compare hierarchical surpluses + // compare distributed fgs pairwise in each dimension + // the "higher" grid should always have a coefficient 1. higher + // (cf how we set the offset above) + auto lowerIndices = dfgEnsemble.getIndicesOfLowerGridsInDimension(d); + for (auto& index : lowerIndices) { + auto& dfgLower = dfgEnsemble.getDFG(index); + auto& dfgHigher = dfgEnsemble.getDFG(GridEnumeration::getUpperNeighborInDimension(static_cast(d), index)); + real offset = GridEnumeration::getNumberOfHigherDimensions(index); + for (IndexType li = 0; li < dfgLower.getNrLocalElements(); ++li) { + BOOST_TEST(dfgLower.getData()[li] + 1. == dfgHigher.getData()[li] , boost::test_tools::tolerance(TestHelper::tolerance)); + } + } + + // dehierarchize + DistributedHierarchization::dehierarchize(dfgEnsemble, hierarchizationDims); + } + + // compare function values + for (size_t i = 0; i < dfgEnsemble.getNumFullGrids(); ++i) { + // for (size_t i = 0; i < 1; ++i) { + auto& dfg = dfgEnsemble.getDFG(i); + real offset = GridEnumeration::getNumberOfHigherDimensions(i); + for (IndexType li = 0; li < dfg.getNrLocalElements(); ++li) { + std::vector coords_dfg(dim); + dfg.getCoordsLocal(li, coords_dfg); + // compare distributed fg to exact solution + BOOST_TEST(dfg.getData()[li] == f(coords_dfg).real() + offset, boost::test_tools::tolerance(TestHelper::tolerance)); + } + } +} + BOOST_AUTO_TEST_SUITE(hierarchization) // with boundary // isotropic + +BOOST_AUTO_TEST_CASE(test_ensemble_minus1) { + BOOST_REQUIRE(TestHelper::checkNumMPIProcsAvailable(1)); + LevelVector levels = {4, 4, 4}; + IndexVector procs = {1, 1, 1}; + std::vector boundary(3, true); + TestFn_1 testFn(levels); + checkHierarchizationEnsemble(testFn, levels, procs, boundary, 1); +} + BOOST_AUTO_TEST_CASE(test_1) { BOOST_REQUIRE(TestHelper::checkNumMPIProcsAvailable(8)); LevelVector levels = {4, 4, 4}; diff --git a/distributedcombigrid/tools/errorCalc.cpp b/distributedcombigrid/tools/errorCalc.cpp index 3dab289ef..86b3febd1 100644 --- a/distributedcombigrid/tools/errorCalc.cpp +++ b/distributedcombigrid/tools/errorCalc.cpp @@ -23,75 +23,91 @@ real l2Norm(std::vector& data); int main(int argc, char** argv) { std::cout << argc << "\n"; - assert(argc == 6); + assert(argc == 7); // mode normalize abs : either normalize w.r.t. l2 Norm of grids, or don't char* mode = argv[1]; - - // files - std::string filenameLeft(argv[2]); - std::string filenameRight(argv[3]); - std::string filenameError(argv[4]); - std::string prefix(argv[5]); - - std::vector data1; - std::vector data2; - - IndexVector res1; - IndexVector res2; - - // get data and res of first file - readPlotFile(filenameLeft.c_str(), data1, res1); - - // get data and res of second file - readPlotFile(filenameRight.c_str(), data2, res2); - - // check sizes - assert(data1.size() == data2.size()); - assert(res1 == res2); - - // normalize with l2 norm - real l2norm1 = l2Norm(data1); - real l2norm2 = l2Norm(data2); - std::cout << "l2 norm grid 1: " << l2norm1 << " l2 norm grid 2: " << l2norm2 << "\n"; - - real tmp1 = 1.0 / l2norm1; - real tmp2 = 1.0 / l2norm2; - if (mode[0] == 'n') { - for (auto i = 0; i < data1.size(); ++i) data1[i] *= tmp1; - for (auto i = 0; i < data2.size(); ++i) data2[i] *= tmp2; - } else if (mode[0] == 'a') { - ; - } else { - assert(!"wrong parameter"); + std::cout< 1e-12) - std::cout << " i: " << i << " values: " << std::abs(data2[i]) << " " << std::abs(data1[i]) << " "; - err += tmp * tmp; + real meanerr=0.0; + std::string prefix(argv[5]); + std::string filenameError(argv[4]); + for(int suffix=0;suffix<=max;suffix++){ + // files + std::string filenameLeft(argv[2]); + std::string filenameRight(argv[3]); + + std::vector data1; + std::vector data2; + + IndexVector res1; + IndexVector res2; + + // get data and res of first file +std::to_string(suffix)).c_str() + readPlotFile(filenameLeft.c_str(), data1, res1); + + // get data and res of second file +std::to_string(suffix)).c_str() + readPlotFile(filenameRight.c_str(), data2, res2); + + // check sizes + assert(data1.size() == data2.size()); + assert(res1 == res2); + + // normalize with l2 norm + real l2norm1 = l2Norm(data1); + real l2norm2 = l2Norm(data2); + std::cout << "l2 norm grid 1: " << l2norm1 << " l2 norm grid 2: " << l2norm2 << "\n"; + + real tmp1 = 1.0 / l2norm1; + real tmp2 = 1.0 / l2norm2; + if (mode[0] == 'n') { + for (auto i = 0; i < data1.size(); ++i) data1[i] *= tmp1; + for (auto i = 0; i < data2.size(); ++i) data2[i] *= tmp2; + } else if (mode[0] == 'a') { + ; + } else { + assert(!"wrong parameter"); + } + // for( auto i=0; i 1e-12) + // std::cout << " i: " << i << " values: " << std::abs(data2[i]) << " " << std::abs(data1[i]) << " "; + err += tmp * tmp; + } + int points=1; + for (auto i=0;i all folders in the root directory -moduleFolders = [filename for filename in os.listdir(".") +moduleFolders = [filename for filename in os.listdir("../") if os.path.isdir(filename)] # select the ones which have a python extension diff --git a/ss b/ss new file mode 100644 index 000000000..18b43ca69 --- /dev/null +++ b/ss @@ -0,0 +1,1643 @@ +commit 88d37a7e6f5e302d8ef562cca0b3abb58a7beaa2 +Author: Marius Goehring +Date: Sun Sep 15 21:25:34 2019 +0200 + + new Class DataConverter + +diff --git a/compile.sh b/compile.sh +index 4ec902b..43146e3 100755 +--- a/compile.sh ++++ b/compile.sh +@@ -1,2 +1,2 @@ +-scons -j 8 SG_ALL=0 SG_DISTRIBUTEDCOMBIGRID=1 VERBOSE=1 RUN_BOOST_TESTS=1 RUN_CPPLINT=0 BUILD_STATICLIB=0 CC=mpicc.mpich FC=mpifort.mpich CXX=mpicxx.mpich OPT=1 TIMING=0 UNIFORMDECOMPOSITION=1 #DEBUG_OUTPUT=1 ++scons -j 8 SG_ALL=1 SG_DISTRIBUTEDCOMBIGRID=1 VERBOSE=1 RUN_BOOST_TESTS=0 RUN_CPPLINT=0 BUILD_STATICLIB=0 CC=mpicc.mpich FC=mpifort.mpich CXX=mpicxx.mpich OPT=1 TIMING=0 UNIFORMDECOMPOSITION=1 #DEBUG_OUTPUT=1 +  +diff --git a/distributedcombigrid/examples/combi_example/DataConverter.cpp b/distributedcombigrid/examples/combi_example/DataConverter.cpp +new file mode 100644 +index 0000000..dc7b7f9 +--- /dev/null ++++ b/distributedcombigrid/examples/combi_example/DataConverter.cpp +@@ -0,0 +1,62 @@ ++#include  ++#include  ++#include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" ++ ++#include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" ++#include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" ++#include  ++#include  ++ ++#include "sgpp/distributedcombigrid/utils/Types.hpp" ++#include "DataConverter.hpp" ++#include "../../../tools/json.hpp" ++ ++using namespace combigrid; ++ ++ ++ ++ void Converter::readFile(DimType dim,LevelVector lmin, LevelVector lmax, LevelVector leval, IndexVector p,size_t ncombi, std::vector boundary){ ++ namespace pt = boost::property_tree; ++ ++ // Create a root ++ pt::ptree root; ++ ++ // Load the json file in this ptree ++ try{ ++ pt::read_json(_fileName, root); ++ int dimx=root.get("General.DimX"); ++ int dimv=root.get("General.DimV"); ++ dim*=dimx+dimv; ++ ++ //lmax: ++ int refineX=root.get("Case.NRefinementsX"); ++ int refineY=root.get("Case.NRefinementsY"); ++ int subX=root.get("Case.NSubdivisionsX"); ++ int subV=root.get("Case.NSubdivisionsV"); ++ ++ //lmin: ++ ++ ++ //ncombi?: ++ ++ //p for partitions ++ int partX=root.get("General.PartitionX"); ++ int partY=root.get("General.PartitionY"); ++ ++ //boundary ++ bool periodicX=root.get("Case.PeriodicX",true); ++ bool periodicV=root.get("Case.PeriodicV",true); ++ ++ leval =lmax; ++ } ++ catch(pt::json_parser::json_parser_error error){ ++ ++ } ++ catch(...){ ++ ++ } ++ } ++ void Converter::print(){ ++ std::cout << "Name:" <<_fileName; ++ } ++ +diff --git a/distributedcombigrid/examples/combi_example/DataConverter.hpp b/distributedcombigrid/examples/combi_example/DataConverter.hpp +new file mode 100644 +index 0000000..5918400 +--- /dev/null ++++ b/distributedcombigrid/examples/combi_example/DataConverter.hpp +@@ -0,0 +1,32 @@ ++/* ++this function reads in the data from a json file formated like that one from hyperdeal and returns the data  ++we need for a Combi ++ ++*/ ++ ++#ifndef DATACONVERTER_H ++#define DATACONVERTER_H ++ ++#include  ++#include  ++#include "sgpp/distributedcombigrid/combischeme/CombiMinMaxScheme.hpp" ++ ++#include "sgpp/distributedcombigrid/loadmodel/LinearLoadModel.hpp" ++#include "sgpp/distributedcombigrid/manager/CombiParameters.hpp" ++ ++#include "sgpp/distributedcombigrid/utils/Types.hpp" ++ ++using namespace combigrid; ++ ++class Converter{ ++ public: ++ Converter(std::string filename):_fileName(filename){}; ++ Converter(); ++ void print(); ++ //reads the data from the file and stores it in the given variables. ++ void readFile(DimType dim,LevelVector lmin, LevelVector lmax, LevelVector leval, IndexVector p,size_t ncombi, std::vector boundary); ++ ++ private: ++ const std::string _fileName; ++}; ++#endif +\ No newline at end of file +diff --git a/distributedcombigrid/examples/combi_example/combi_example b/distributedcombigrid/examples/combi_example/combi_example +new file mode 100755 +index 0000000..fcfd569 +Binary files /dev/null and b/distributedcombigrid/examples/combi_example/combi_example differ +diff --git a/distributedcombigrid/examples/combi_example/combi_example.cpp b/distributedcombigrid/examples/combi_example/combi_example.cpp +index 06e7d3a..6f637b1 100644 +--- a/distributedcombigrid/examples/combi_example/combi_example.cpp ++++ b/distributedcombigrid/examples/combi_example/combi_example.cpp +@@ -26,6 +26,8 @@ + #include "sgpp/distributedcombigrid/utils/Types.hpp" + // include user specific task. this is the interface to your application + #include "TaskExample.hpp" ++#include "DataConverter.cpp" ++#include "DataConverter.hpp" +  + using namespace combigrid; +  +@@ -83,6 +85,8 @@ int main(int argc, char** argv) { + dt = cfg.get("application.dt"); + nsteps = cfg.get("application.nsteps"); +  ++ Converter converter("ct.param"); ++ converter.print(); + // TODO: read in boundary vector from ctparam + std::vector boundary(dim, true); +  +diff --git a/distributedcombigrid/examples/combi_example/ctparam b/distributedcombigrid/examples/combi_example/ctparam +index 29e5624..e3927c0 100644 +--- a/distributedcombigrid/examples/combi_example/ctparam ++++ b/distributedcombigrid/examples/combi_example/ctparam +@@ -4,7 +4,7 @@ lmin = 3 3 + lmax = 10 10  + leval = 5 5  + p = 1 1 +-ncombi = 10 t ++ncombi = 10 +  + [application] + dt = 1e-3 +diff --git a/lib/__init__.py b/lib/__init__.py +new file mode 100644 +index 0000000..e69de29 +diff --git a/lib/pysgpp/__init__.py b/lib/pysgpp/__init__.py +new file mode 100644 +index 0000000..65d4f85 +--- /dev/null ++++ b/lib/pysgpp/__init__.py +@@ -0,0 +1,2 @@ ++from pysgpp_swig import * ++import extensions +diff --git a/lib/pysgpp/extensions/__init__.py b/lib/pysgpp/extensions/__init__.py +new file mode 100644 +index 0000000..e69de29 +diff --git a/tools/json.hpp b/tools/json.hpp +new file mode 100644 +index 0000000..2a32a82 +--- /dev/null ++++ b/tools/json.hpp +@@ -0,0 +1,22684 @@ ++/* ++ __ _____ _____ _____ ++ __| | __| | | | JSON for Modern C++ ++| | |__ | | | | | | version 3.7.0 ++|_____|_____|_____|_|___| https://github.com/nlohmann/json ++ ++Licensed under the MIT License . ++SPDX-License-Identifier: MIT ++Copyright (c) 2013-2019 Niels Lohmann . ++ ++Permission is hereby granted, free of charge, to any person obtaining a copy ++of this software and associated documentation files (the "Software"), to deal ++in the Software without restriction, including without limitation the rights ++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ++copies of the Software, and to permit persons to whom the Software is ++furnished to do so, subject to the following conditions: ++ ++The above copyright notice and this permission notice shall be included in all ++copies or substantial portions of the Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++SOFTWARE. ++*/ ++ ++#ifndef INCLUDE_NLOHMANN_JSON_HPP_ ++#define INCLUDE_NLOHMANN_JSON_HPP_ ++ ++#define NLOHMANN_JSON_VERSION_MAJOR 3 ++#define NLOHMANN_JSON_VERSION_MINOR 7 ++#define NLOHMANN_JSON_VERSION_PATCH 0 ++ ++#include // all_of, find, for_each ++#include // assert ++#include // and, not, or ++#include // nullptr_t, ptrdiff_t, size_t ++#include // hash, less ++#include // initializer_list ++#include // istream, ostream ++#include // random_access_iterator_tag ++#include // unique_ptr ++#include // accumulate ++#include // string, stoi, to_string ++#include // declval, forward, move, pair, swap ++#include // vector ++ ++// #include  ++ ++ ++#include  ++ ++// #include  ++ ++ ++#include // transform ++#include // array ++#include // and, not ++#include // forward_list ++#include // inserter, front_inserter, end ++#include // map ++#include // string ++#include // tuple, make_tuple ++#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible ++#include // unordered_map ++#include // pair, declval ++#include // valarray ++ ++// #include  ++ ++ ++#include // exception ++#include // runtime_error ++#include // to_string ++ ++// #include  ++ ++ ++#include // size_t ++ ++namespace nlohmann ++{ ++namespace detail ++{ ++/// struct to capture the start position of the current token ++struct position_t ++{ ++ /// the total number of characters read ++ std::size_t chars_read_total = 0; ++ /// the number of characters read in the current line ++ std::size_t chars_read_current_line = 0; ++ /// the number of lines read ++ std::size_t lines_read = 0; ++ ++ /// conversion to size_t to preserve SAX interface ++ constexpr operator size_t() const ++ { ++ return chars_read_total; ++ } ++}; ++ ++} // namespace detail ++} // namespace nlohmann ++ ++// #include  ++ ++ ++#include // pair ++// #include  ++/* Hedley - https://nemequ.github.io/hedley ++ * Created by Evan Nemerson  ++ * ++ * To the extent possible under law, the author(s) have dedicated all ++ * copyright and related and neighboring rights to this software to ++ * the public domain worldwide. This software is distributed without ++ * any warranty. ++ * ++ * For details, see . ++ * SPDX-License-Identifier: CC0-1.0 ++ */ ++ ++#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 9) ++#if defined(JSON_HEDLEY_VERSION) ++ #undef JSON_HEDLEY_VERSION ++#endif ++#define JSON_HEDLEY_VERSION 9 ++ ++#if defined(JSON_HEDLEY_STRINGIFY_EX) ++ #undef JSON_HEDLEY_STRINGIFY_EX ++#endif ++#define JSON_HEDLEY_STRINGIFY_EX(x) #x ++ ++#if defined(JSON_HEDLEY_STRINGIFY) ++ #undef JSON_HEDLEY_STRINGIFY ++#endif ++#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) ++ ++#if defined(JSON_HEDLEY_CONCAT_EX) ++ #undef JSON_HEDLEY_CONCAT_EX ++#endif ++#define JSON_HEDLEY_CONCAT_EX(a,b) a##b ++ ++#if defined(JSON_HEDLEY_CONCAT) ++ #undef JSON_HEDLEY_CONCAT ++#endif ++#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) ++ ++#if defined(JSON_HEDLEY_VERSION_ENCODE) ++ #undef JSON_HEDLEY_VERSION_ENCODE ++#endif ++#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) ++ ++#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) ++ #undef JSON_HEDLEY_VERSION_DECODE_MAJOR ++#endif ++#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) ++ ++#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) ++ #undef JSON_HEDLEY_VERSION_DECODE_MINOR ++#endif ++#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) ++ ++#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) ++ #undef JSON_HEDLEY_VERSION_DECODE_REVISION ++#endif ++#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) ++ ++#if defined(JSON_HEDLEY_GNUC_VERSION) ++ #undef JSON_HEDLEY_GNUC_VERSION ++#endif ++#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) ++ #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) ++#elif defined(__GNUC__) ++ #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) ++ #undef JSON_HEDLEY_GNUC_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_GNUC_VERSION) ++ #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_MSVC_VERSION) ++ #undef JSON_HEDLEY_MSVC_VERSION ++#endif ++#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) ++ #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) ++#elif defined(_MSC_FULL_VER) ++ #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) ++#elif defined(_MSC_VER) ++ #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) ++#endif ++ ++#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) ++ #undef JSON_HEDLEY_MSVC_VERSION_CHECK ++#endif ++#if !defined(_MSC_VER) ++ #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) ++#elif defined(_MSC_VER) && (_MSC_VER >= 1400) ++ #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) ++#elif defined(_MSC_VER) && (_MSC_VER >= 1200) ++ #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) ++#else ++ #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) ++#endif ++ ++#if defined(JSON_HEDLEY_INTEL_VERSION) ++ #undef JSON_HEDLEY_INTEL_VERSION ++#endif ++#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) ++ #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) ++#elif defined(__INTEL_COMPILER) ++ #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) ++#endif ++ ++#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) ++ #undef JSON_HEDLEY_INTEL_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_INTEL_VERSION) ++ #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_PGI_VERSION) ++ #undef JSON_HEDLEY_PGI_VERSION ++#endif ++#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) ++ #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) ++#endif ++ ++#if defined(JSON_HEDLEY_PGI_VERSION_CHECK) ++ #undef JSON_HEDLEY_PGI_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_PGI_VERSION) ++ #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_SUNPRO_VERSION) ++ #undef JSON_HEDLEY_SUNPRO_VERSION ++#endif ++#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) ++ #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) ++#elif defined(__SUNPRO_C) ++ #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) ++#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) ++ #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) ++#elif defined(__SUNPRO_CC) ++ #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) ++#endif ++ ++#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) ++ #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_SUNPRO_VERSION) ++ #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) ++ #undef JSON_HEDLEY_EMSCRIPTEN_VERSION ++#endif ++#if defined(__EMSCRIPTEN__) ++ #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) ++#endif ++ ++#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) ++ #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) ++ #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_ARM_VERSION) ++ #undef JSON_HEDLEY_ARM_VERSION ++#endif ++#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) ++ #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) ++#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) ++ #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) ++#endif ++ ++#if defined(JSON_HEDLEY_ARM_VERSION_CHECK) ++ #undef JSON_HEDLEY_ARM_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_ARM_VERSION) ++ #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_IBM_VERSION) ++ #undef JSON_HEDLEY_IBM_VERSION ++#endif ++#if defined(__ibmxl__) ++ #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) ++#elif defined(__xlC__) && defined(__xlC_ver__) ++ #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) ++#elif defined(__xlC__) ++ #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) ++#endif ++ ++#if defined(JSON_HEDLEY_IBM_VERSION_CHECK) ++ #undef JSON_HEDLEY_IBM_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_IBM_VERSION) ++ #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_TI_VERSION) ++ #undef JSON_HEDLEY_TI_VERSION ++#endif ++#if defined(__TI_COMPILER_VERSION__) ++ #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) ++#endif ++ ++#if defined(JSON_HEDLEY_TI_VERSION_CHECK) ++ #undef JSON_HEDLEY_TI_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_TI_VERSION) ++ #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_CRAY_VERSION) ++ #undef JSON_HEDLEY_CRAY_VERSION ++#endif ++#if defined(_CRAYC) ++ #if defined(_RELEASE_PATCHLEVEL) ++ #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) ++ #else ++ #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) ++ #endif ++#endif ++ ++#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) ++ #undef JSON_HEDLEY_CRAY_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_CRAY_VERSION) ++ #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_IAR_VERSION) ++ #undef JSON_HEDLEY_IAR_VERSION ++#endif ++#if defined(__IAR_SYSTEMS_ICC__) ++ #if __VER__ > 1000 ++ #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) ++ #else ++ #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(VER / 100, __VER__ % 100, 0) ++ #endif ++#endif ++ ++#if defined(JSON_HEDLEY_IAR_VERSION_CHECK) ++ #undef JSON_HEDLEY_IAR_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_IAR_VERSION) ++ #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_TINYC_VERSION) ++ #undef JSON_HEDLEY_TINYC_VERSION ++#endif ++#if defined(__TINYC__) ++ #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) ++#endif ++ ++#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) ++ #undef JSON_HEDLEY_TINYC_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_TINYC_VERSION) ++ #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_DMC_VERSION) ++ #undef JSON_HEDLEY_DMC_VERSION ++#endif ++#if defined(__DMC__) ++ #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) ++#endif ++ ++#if defined(JSON_HEDLEY_DMC_VERSION_CHECK) ++ #undef JSON_HEDLEY_DMC_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_DMC_VERSION) ++ #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_COMPCERT_VERSION) ++ #undef JSON_HEDLEY_COMPCERT_VERSION ++#endif ++#if defined(__COMPCERT_VERSION__) ++ #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) ++#endif ++ ++#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) ++ #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_COMPCERT_VERSION) ++ #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_PELLES_VERSION) ++ #undef JSON_HEDLEY_PELLES_VERSION ++#endif ++#if defined(__POCC__) ++ #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) ++#endif ++ ++#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) ++ #undef JSON_HEDLEY_PELLES_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_PELLES_VERSION) ++ #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_VERSION) ++ #undef JSON_HEDLEY_GCC_VERSION ++#endif ++#if \ ++ defined(JSON_HEDLEY_GNUC_VERSION) && \ ++ !defined(__clang__) && \ ++ !defined(JSON_HEDLEY_INTEL_VERSION) && \ ++ !defined(JSON_HEDLEY_PGI_VERSION) && \ ++ !defined(JSON_HEDLEY_ARM_VERSION) && \ ++ !defined(JSON_HEDLEY_TI_VERSION) && \ ++ !defined(__COMPCERT__) ++ #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_VERSION_CHECK) ++ #undef JSON_HEDLEY_GCC_VERSION_CHECK ++#endif ++#if defined(JSON_HEDLEY_GCC_VERSION) ++ #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) ++#else ++ #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_HAS_ATTRIBUTE) ++ #undef JSON_HEDLEY_HAS_ATTRIBUTE ++#endif ++#if defined(__has_attribute) ++ #define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) ++#else ++ #define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) ++ #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE ++#endif ++#if defined(__has_attribute) ++ #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute) ++#else ++ #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) ++ #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE ++#endif ++#if defined(__has_attribute) ++ #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) __has_attribute(attribute) ++#else ++ #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) ++ #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE ++#endif ++#if defined(__has_cpp_attribute) && defined(__cplusplus) ++ #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) ++#else ++ #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) ++ #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE ++#endif ++#if defined(__has_cpp_attribute) && defined(__cplusplus) ++ #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) ++#else ++ #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) ++ #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE ++#endif ++#if defined(__has_cpp_attribute) && defined(__cplusplus) ++ #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) ++#else ++ #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_HAS_BUILTIN) ++ #undef JSON_HEDLEY_HAS_BUILTIN ++#endif ++#if defined(__has_builtin) ++ #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) ++#else ++ #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) ++ #undef JSON_HEDLEY_GNUC_HAS_BUILTIN ++#endif ++#if defined(__has_builtin) ++ #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) ++#else ++ #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) ++ #undef JSON_HEDLEY_GCC_HAS_BUILTIN ++#endif ++#if defined(__has_builtin) ++ #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) ++#else ++ #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_HAS_FEATURE) ++ #undef JSON_HEDLEY_HAS_FEATURE ++#endif ++#if defined(__has_feature) ++ #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) ++#else ++ #define JSON_HEDLEY_HAS_FEATURE(feature) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) ++ #undef JSON_HEDLEY_GNUC_HAS_FEATURE ++#endif ++#if defined(__has_feature) ++ #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) ++#else ++ #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_HAS_FEATURE) ++ #undef JSON_HEDLEY_GCC_HAS_FEATURE ++#endif ++#if defined(__has_feature) ++ #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) ++#else ++ #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_HAS_EXTENSION) ++ #undef JSON_HEDLEY_HAS_EXTENSION ++#endif ++#if defined(__has_extension) ++ #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) ++#else ++ #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) ++ #undef JSON_HEDLEY_GNUC_HAS_EXTENSION ++#endif ++#if defined(__has_extension) ++ #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) ++#else ++ #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) ++ #undef JSON_HEDLEY_GCC_HAS_EXTENSION ++#endif ++#if defined(__has_extension) ++ #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) ++#else ++ #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) ++ #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE ++#endif ++#if defined(__has_declspec_attribute) ++ #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) ++#else ++ #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) ++ #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE ++#endif ++#if defined(__has_declspec_attribute) ++ #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) ++#else ++ #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) ++ #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE ++#endif ++#if defined(__has_declspec_attribute) ++ #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) ++#else ++ #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_HAS_WARNING) ++ #undef JSON_HEDLEY_HAS_WARNING ++#endif ++#if defined(__has_warning) ++ #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) ++#else ++ #define JSON_HEDLEY_HAS_WARNING(warning) (0) ++#endif ++ ++#if defined(JSON_HEDLEY_GNUC_HAS_WARNING) ++ #undef JSON_HEDLEY_GNUC_HAS_WARNING ++#endif ++#if defined(__has_warning) ++ #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) ++#else ++ #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if defined(JSON_HEDLEY_GCC_HAS_WARNING) ++ #undef JSON_HEDLEY_GCC_HAS_WARNING ++#endif ++#if defined(__has_warning) ++ #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) ++#else ++ #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) ++#endif ++ ++#if \ ++ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ ++ defined(__clang__) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ ++ JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) || \ ++ JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ ++ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) ++ #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) ++ #define JSON_HEDLEY_PRAGMA(value) __pragma(value) ++#else ++ #define JSON_HEDLEY_PRAGMA(value) ++#endif ++ ++#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) ++ #undef JSON_HEDLEY_DIAGNOSTIC_PUSH ++#endif ++#if defined(JSON_HEDLEY_DIAGNOSTIC_POP) ++ #undef JSON_HEDLEY_DIAGNOSTIC_POP ++#endif ++#if defined(__clang__) ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") ++ #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") ++#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") ++ #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") ++#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") ++ #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) ++ #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) ++#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") ++ #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") ++#elif JSON_HEDLEY_TI_VERSION_CHECK(8,1,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") ++ #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") ++#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") ++ #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") ++#else ++ #define JSON_HEDLEY_DIAGNOSTIC_PUSH ++ #define JSON_HEDLEY_DIAGNOSTIC_POP ++#endif ++ ++#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) ++ #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED ++#endif ++#if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") ++#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") ++#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") ++#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) ++#elif JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") ++#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") ++#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") ++#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") ++#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") ++#else ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED ++#endif ++ ++#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) ++ #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS ++#endif ++#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") ++#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") ++#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") ++#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) ++#elif JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") ++#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") ++#else ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS ++#endif ++ ++#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) ++ #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL ++#endif ++#if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") ++#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") ++#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") ++#else ++ #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL ++#endif ++ ++#if defined(JSON_HEDLEY_DEPRECATED) ++ #undef JSON_HEDLEY_DEPRECATED ++#endif ++#if defined(JSON_HEDLEY_DEPRECATED_FOR) ++ #undef JSON_HEDLEY_DEPRECATED_FOR ++#endif ++#if defined(__cplusplus) && (__cplusplus >= 201402L) ++ #define JSON_HEDLEY_DEPRECATED(since) [[deprecated("Since " #since)]] ++ #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) [[deprecated("Since " #since "; use " #replacement)]] ++#elif \ ++ JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ ++ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,3,0) ++ #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) ++ #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) ++#elif \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) ++ #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) ++ #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) ++ #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) ++ #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) ++#elif \ ++ JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ ++ JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) ++ #define JSON_HEDLEY_DEPRECATED(since) _declspec(deprecated) ++ #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) ++#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") ++ #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") ++#else ++ #define JSON_HEDLEY_DEPRECATED(since) ++ #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) ++#endif ++ ++#if defined(JSON_HEDLEY_UNAVAILABLE) ++ #undef JSON_HEDLEY_UNAVAILABLE ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) ++#else ++ #define JSON_HEDLEY_UNAVAILABLE(available_since) ++#endif ++ ++#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) ++ #undef JSON_HEDLEY_WARN_UNUSED_RESULT ++#endif ++#if defined(__cplusplus) && (__cplusplus >= 201703L) ++ #define JSON_HEDLEY_WARN_UNUSED_RESULT [[nodiscard]] ++#elif \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ ++ (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ ++ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) ++ #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) ++#elif defined(_Check_return_) /* SAL */ ++ #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ ++#else ++ #define JSON_HEDLEY_WARN_UNUSED_RESULT ++#endif ++ ++#if defined(JSON_HEDLEY_SENTINEL) ++ #undef JSON_HEDLEY_SENTINEL ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) ++ #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) ++#else ++ #define JSON_HEDLEY_SENTINEL(position) ++#endif ++ ++#if defined(JSON_HEDLEY_NO_RETURN) ++ #undef JSON_HEDLEY_NO_RETURN ++#endif ++#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_NO_RETURN __noreturn ++#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) ++#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L ++ #define JSON_HEDLEY_NO_RETURN _Noreturn ++#elif defined(__cplusplus) && (__cplusplus >= 201103L) ++ #define JSON_HEDLEY_NO_RETURN [[noreturn]] ++#elif \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(18,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(17,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) ++ #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) ++ #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) ++#elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) && defined(__cplusplus) ++ #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") ++#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) ++ #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) ++#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) ++ #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) ++#else ++ #define JSON_HEDLEY_NO_RETURN ++#endif ++ ++#if defined(JSON_HEDLEY_UNREACHABLE) ++ #undef JSON_HEDLEY_UNREACHABLE ++#endif ++#if defined(JSON_HEDLEY_UNREACHABLE_RETURN) ++ #undef JSON_HEDLEY_UNREACHABLE_RETURN ++#endif ++#if \ ++ (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) ++ #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) ++ #define JSON_HEDLEY_UNREACHABLE() __assume(0) ++#elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) ++ #if defined(__cplusplus) ++ #define JSON_HEDLEY_UNREACHABLE() std::_nassert(0) ++ #else ++ #define JSON_HEDLEY_UNREACHABLE() _nassert(0) ++ #endif ++ #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return value ++#elif defined(EXIT_FAILURE) ++ #define JSON_HEDLEY_UNREACHABLE() abort() ++#else ++ #define JSON_HEDLEY_UNREACHABLE() ++ #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return value ++#endif ++#if !defined(JSON_HEDLEY_UNREACHABLE_RETURN) ++ #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() ++#endif ++ ++#if defined(JSON_HEDLEY_ASSUME) ++ #undef JSON_HEDLEY_ASSUME ++#endif ++#if \ ++ JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_ASSUME(expr) __assume(expr) ++#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) ++ #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) ++#elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) ++ #if defined(__cplusplus) ++ #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) ++ #else ++ #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) ++ #endif ++#elif \ ++ (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && !defined(JSON_HEDLEY_ARM_VERSION)) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) ++ #define JSON_HEDLEY_ASSUME(expr) ((void) ((expr) ? 1 : (__builtin_unreachable(), 1))) ++#else ++ #define JSON_HEDLEY_ASSUME(expr) ((void) (expr)) ++#endif ++ ++ ++JSON_HEDLEY_DIAGNOSTIC_PUSH ++#if \ ++ JSON_HEDLEY_HAS_WARNING("-Wvariadic-macros") || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) ++ #if defined(__clang__) ++ #pragma clang diagnostic ignored "-Wvariadic-macros" ++ #elif defined(JSON_HEDLEY_GCC_VERSION) ++ #pragma GCC diagnostic ignored "-Wvariadic-macros" ++ #endif ++#endif ++#if defined(JSON_HEDLEY_NON_NULL) ++ #undef JSON_HEDLEY_NON_NULL ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) ++ #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) ++#else ++ #define JSON_HEDLEY_NON_NULL(...) ++#endif ++JSON_HEDLEY_DIAGNOSTIC_POP ++ ++#if defined(JSON_HEDLEY_PRINTF_FORMAT) ++ #undef JSON_HEDLEY_PRINTF_FORMAT ++#endif ++#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) ++ #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) ++#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) ++ #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) ++#elif \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) ++ #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) ++#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) ++ #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) ++#else ++ #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) ++#endif ++ ++#if defined(JSON_HEDLEY_CONSTEXPR) ++ #undef JSON_HEDLEY_CONSTEXPR ++#endif ++#if defined(__cplusplus) ++ #if __cplusplus >= 201103L ++ #define JSON_HEDLEY_CONSTEXPR constexpr ++ #endif ++#endif ++#if !defined(JSON_HEDLEY_CONSTEXPR) ++ #define JSON_HEDLEY_CONSTEXPR ++#endif ++ ++#if defined(JSON_HEDLEY_PREDICT) ++ #undef JSON_HEDLEY_PREDICT ++#endif ++#if defined(JSON_HEDLEY_LIKELY) ++ #undef JSON_HEDLEY_LIKELY ++#endif ++#if defined(JSON_HEDLEY_UNLIKELY) ++ #undef JSON_HEDLEY_UNLIKELY ++#endif ++#if defined(JSON_HEDLEY_UNPREDICTABLE) ++ #undef JSON_HEDLEY_UNPREDICTABLE ++#endif ++#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) ++ #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable(!!(expr)) ++#endif ++#if \ ++ JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) ++# define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability(expr, value, probability) ++# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1, probability) ++# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0, probability) ++# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) ++# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) ++#if !defined(JSON_HEDLEY_BUILTIN_UNPREDICTABLE) ++ #define JSON_HEDLEY_BUILTIN_UNPREDICTABLE(expr) __builtin_expect_with_probability(!!(expr), 1, 0.5) ++#endif ++#elif \ ++ JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(6,1,0) || \ ++ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) ++# define JSON_HEDLEY_PREDICT(expr, expected, probability) \ ++ (((probability) >= 0.9) ? __builtin_expect(!!(expr), (expected)) : (((void) (expected)), !!(expr))) ++# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ ++ (__extension__ ({ \ ++ JSON_HEDLEY_CONSTEXPR double hedley_probability_ = (probability); \ ++ ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ ++ })) ++# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ ++ (__extension__ ({ \ ++ JSON_HEDLEY_CONSTEXPR double hedley_probability_ = (probability); \ ++ ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ ++ })) ++# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) ++# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) ++#else ++# define JSON_HEDLEY_PREDICT(expr, expected, probability) (((void) (expected)), !!(expr)) ++# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) ++# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) ++# define JSON_HEDLEY_LIKELY(expr) (!!(expr)) ++# define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) ++#endif ++#if !defined(JSON_HEDLEY_UNPREDICTABLE) ++ #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) ++#endif ++ ++#if defined(JSON_HEDLEY_MALLOC) ++ #undef JSON_HEDLEY_MALLOC ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) ++ #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(14, 0, 0) ++ #define JSON_HEDLEY_MALLOC __declspec(restrict) ++#else ++ #define JSON_HEDLEY_MALLOC ++#endif ++ ++#if defined(JSON_HEDLEY_PURE) ++ #undef JSON_HEDLEY_PURE ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ ++ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) ++ #define JSON_HEDLEY_PURE __attribute__((__pure__)) ++#elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) && defined(__cplusplus) ++ #define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") ++#else ++ #define JSON_HEDLEY_PURE ++#endif ++ ++#if defined(JSON_HEDLEY_CONST) ++ #undef JSON_HEDLEY_CONST ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ ++ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) ++ #define JSON_HEDLEY_CONST __attribute__((__const__)) ++#else ++ #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE ++#endif ++ ++#if defined(JSON_HEDLEY_RESTRICT) ++ #undef JSON_HEDLEY_RESTRICT ++#endif ++#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) ++ #define JSON_HEDLEY_RESTRICT restrict ++#elif \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ ++ JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ ++ JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ ++ defined(__clang__) ++ #define JSON_HEDLEY_RESTRICT __restrict ++#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) ++ #define JSON_HEDLEY_RESTRICT _Restrict ++#else ++ #define JSON_HEDLEY_RESTRICT ++#endif ++ ++#if defined(JSON_HEDLEY_INLINE) ++ #undef JSON_HEDLEY_INLINE ++#endif ++#if \ ++ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ ++ (defined(__cplusplus) && (__cplusplus >= 199711L)) ++ #define JSON_HEDLEY_INLINE inline ++#elif \ ++ defined(JSON_HEDLEY_GCC_VERSION) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) ++ #define JSON_HEDLEY_INLINE __inline__ ++#elif \ ++ JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_INLINE __inline ++#else ++ #define JSON_HEDLEY_INLINE ++#endif ++ ++#if defined(JSON_HEDLEY_ALWAYS_INLINE) ++ #undef JSON_HEDLEY_ALWAYS_INLINE ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) ++ #define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) ++ #define JSON_HEDLEY_ALWAYS_INLINE __forceinline ++#elif JSON_HEDLEY_TI_VERSION_CHECK(7,0,0) && defined(__cplusplus) ++ #define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") ++#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") ++#else ++ #define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE ++#endif ++ ++#if defined(JSON_HEDLEY_NEVER_INLINE) ++ #undef JSON_HEDLEY_NEVER_INLINE ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) ++ #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) ++#elif JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) ++ #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) ++#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) ++ #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") ++#elif JSON_HEDLEY_TI_VERSION_CHECK(6,0,0) && defined(__cplusplus) ++ #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") ++#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) ++ #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") ++#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) ++ #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) ++#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) ++ #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) ++#else ++ #define JSON_HEDLEY_NEVER_INLINE ++#endif ++ ++#if defined(JSON_HEDLEY_PRIVATE) ++ #undef JSON_HEDLEY_PRIVATE ++#endif ++#if defined(JSON_HEDLEY_PUBLIC) ++ #undef JSON_HEDLEY_PUBLIC ++#endif ++#if defined(JSON_HEDLEY_IMPORT) ++ #undef JSON_HEDLEY_IMPORT ++#endif ++#if defined(_WIN32) || defined(__CYGWIN__) ++ #define JSON_HEDLEY_PRIVATE ++ #define JSON_HEDLEY_PUBLIC __declspec(dllexport) ++ #define JSON_HEDLEY_IMPORT __declspec(dllimport) ++#else ++ #if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(8,0,0) || \ ++ (JSON_HEDLEY_TI_VERSION_CHECK(7,3,0) && defined(__TI_EABI__) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) ++ #define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) ++ #define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) ++ #else ++ #define JSON_HEDLEY_PRIVATE ++ #define JSON_HEDLEY_PUBLIC ++ #endif ++ #define JSON_HEDLEY_IMPORT extern ++#endif ++ ++#if defined(JSON_HEDLEY_NO_THROW) ++ #undef JSON_HEDLEY_NO_THROW ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++ #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) ++#elif \ ++ JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) ++ #define JSON_HEDLEY_NO_THROW __declspec(nothrow) ++#else ++ #define JSON_HEDLEY_NO_THROW ++#endif ++ ++#if defined(JSON_HEDLEY_FALL_THROUGH) ++ #undef JSON_HEDLEY_FALL_THROUGH ++#endif ++#if \ ++ defined(__cplusplus) && \ ++ (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ ++ !defined(JSON_HEDLEY_PGI_VERSION) ++ #if \ ++ (__cplusplus >= 201703L) || \ ++ ((__cplusplus >= 201103L) && JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough)) ++ #define JSON_HEDLEY_FALL_THROUGH [[fallthrough]] ++ #elif (__cplusplus >= 201103L) && JSON_HEDLEY_HAS_CPP_ATTRIBUTE(clang::fallthrough) ++ #define JSON_HEDLEY_FALL_THROUGH [[clang::fallthrough]] ++ #elif (__cplusplus >= 201103L) && JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) ++ #define JSON_HEDLEY_FALL_THROUGH [[gnu::fallthrough]] ++ #endif ++#endif ++#if !defined(JSON_HEDLEY_FALL_THROUGH) ++ #if JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(fallthrough,7,0,0) && !defined(JSON_HEDLEY_PGI_VERSION) ++ #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) ++ #elif defined(__fallthrough) /* SAL */ ++ #define JSON_HEDLEY_FALL_THROUGH __fallthrough ++ #else ++ #define JSON_HEDLEY_FALL_THROUGH ++ #endif ++#endif ++ ++#if defined(JSON_HEDLEY_RETURNS_NON_NULL) ++ #undef JSON_HEDLEY_RETURNS_NON_NULL ++#endif ++#if \ ++ JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) ++ #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) ++#elif defined(_Ret_notnull_) /* SAL */ ++ #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ ++#else ++ #define JSON_HEDLEY_RETURNS_NON_NULL ++#endif ++ ++#if defined(JSON_HEDLEY_ARRAY_PARAM) ++ #undef JSON_HEDLEY_ARRAY_PARAM ++#endif ++#if \ ++ defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ ++ !defined(__STDC_NO_VLA__) && \ ++ !defined(__cplusplus) && \ ++ !defined(JSON_HEDLEY_PGI_VERSION) && \ ++ !defined(JSON_HEDLEY_TINYC_VERSION) ++ #define JSON_HEDLEY_ARRAY_PARAM(name) (name) ++#else ++ #define JSON_HEDLEY_ARRAY_PARAM(name) ++#endif ++ ++#if defined(JSON_HEDLEY_IS_CONSTANT) ++ #undef JSON_HEDLEY_IS_CONSTANT ++#endif ++#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) ++ #undef JSON_HEDLEY_REQUIRE_CONSTEXPR ++#endif ++/* Note the double-underscore. For internal use only; no API ++ * guarantees! */ ++#if defined(JSON_HEDLEY__IS_CONSTEXPR) ++ #undef JSON_HEDLEY__IS_CONSTEXPR ++#endif ++ ++#if \ ++ JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ ++ JSON_HEDLEY_TI_VERSION_CHECK(6,1,0) || \ ++ JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) || \ ++ JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) ++ #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) ++#endif ++#if !defined(__cplusplus) ++# if \ ++ JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ ++ JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ ++ JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) ++#if defined(__INTPTR_TYPE__) ++ #define JSON_HEDLEY__IS_CONSTEXPR(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) ++#else ++ #include  ++ #define JSON_HEDLEY__IS_CONSTEXPR(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) ++#endif ++# elif \ ++ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && !defined(JSON_HEDLEY_SUNPRO_VERSION) && !defined(JSON_HEDLEY_PGI_VERSION)) || \ ++ JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ ++ JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ ++ JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) ++#if defined(__INTPTR_TYPE__) ++ #define JSON_HEDLEY__IS_CONSTEXPR(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) ++#else ++ #include  ++ #define JSON_HEDLEY__IS_CONSTEXPR(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) ++#endif ++# elif \ ++ defined(JSON_HEDLEY_GCC_VERSION) || \ ++ defined(JSON_HEDLEY_INTEL_VERSION) || \ ++ defined(JSON_HEDLEY_TINYC_VERSION) || \ ++ defined(JSON_HEDLEY_TI_VERSION) || \ ++ defined(__clang__) ++# define JSON_HEDLEY__IS_CONSTEXPR(expr) ( \ ++ sizeof(void) != \ ++ sizeof(*( \ ++ 1 ? \ ++ ((void*) ((expr) * 0L) ) : \ ++((struct { char v[sizeof(void) * 2]; } *) 1) \ ++ ) \ ++ ) \ ++ ) ++# endif ++#endif ++#if defined(JSON_HEDLEY__IS_CONSTEXPR) ++ #if !defined(JSON_HEDLEY_IS_CONSTANT) ++ #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY__IS_CONSTEXPR(expr) ++ #endif ++ #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY__IS_CONSTEXPR(expr) ? (expr) : (-1)) ++#else ++ #if !defined(JSON_HEDLEY_IS_CONSTANT) ++ #define JSON_HEDLEY_IS_CONSTANT(expr) (0) ++ #endif ++ #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) ++#endif ++ ++#if defined(JSON_HEDLEY_BEGIN_C_DECLS) ++ #undef JSON_HEDLEY_BEGIN_C_DECLS ++#endif ++#if defined(JSON_HEDLEY_END_C_DECLS) ++ #undef JSON_HEDLEY_END_C_DECLS ++#endif ++#if defined(JSON_HEDLEY_C_DECL) ++ #undef JSON_HEDLEY_C_DECL ++#endif ++#if defined(__cplusplus) ++ #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { ++ #define JSON_HEDLEY_END_C_DECLS } ++ #define JSON_HEDLEY_C_DECL extern "C" ++#else ++ #define JSON_HEDLEY_BEGIN_C_DECLS ++ #define JSON_HEDLEY_END_C_DECLS ++ #define JSON_HEDLEY_C_DECL ++#endif ++ ++#if defined(JSON_HEDLEY_STATIC_ASSERT) ++ #undef JSON_HEDLEY_STATIC_ASSERT ++#endif ++#if \ ++ !defined(__cplusplus) && ( \ ++ (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ ++ JSON_HEDLEY_HAS_FEATURE(c_static_assert) || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ ++ defined(_Static_assert) \ ++ ) ++# define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) ++#elif \ ++ (defined(__cplusplus) && (__cplusplus >= 201703L)) || \ ++ JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ ++ (defined(__cplusplus) && JSON_HEDLEY_TI_VERSION_CHECK(8,3,0)) ++# define JSON_HEDLEY_STATIC_ASSERT(expr, message) static_assert(expr, message) ++#elif defined(__cplusplus) && (__cplusplus >= 201103L) ++# define JSON_HEDLEY_STATIC_ASSERT(expr, message) static_assert(expr) ++#else ++# define JSON_HEDLEY_STATIC_ASSERT(expr, message) ++#endif ++ ++#if defined(JSON_HEDLEY_CONST_CAST) ++ #undef JSON_HEDLEY_CONST_CAST ++#endif ++#if defined(__cplusplus) ++# define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) ++#elif \ ++ JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ ++ JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ ++ JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) ++# define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ ++ JSON_HEDLEY_DIAGNOSTIC_PUSH \ ++ JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ ++ ((T) (expr)); \ ++ JSON_HEDLEY_DIAGNOSTIC_POP \ ++ })) ++#else ++# define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) ++#endif ++ ++#if defined(JSON_HEDLEY_REINTERPRET_CAST) ++ #undef JSON_HEDLEY_REINTERPRET_CAST ++#endif ++#if defined(__cplusplus) ++ #define JSON_HEDLEY_REINTERP \ No newline at end of file