Merge lp:~schnetter/pocl/pocl into lp:~pocl/pocl/trunk
- pocl
- Merge into trunk
Status: | Merged |
---|---|
Merged at revision: | 461 |
Proposed branch: | lp:~schnetter/pocl/pocl |
Merge into: | lp:~pocl/pocl/trunk |
Diff against target: |
11103 lines (+9300/-209) 112 files modified
configure.ac (+4/-1) doc/binary_format.txt (+1/-1) doc/envs.txt (+1/-1) doc/handling_loops.txt (+1/-1) examples/EinsteinToolkit/EinsteinToolkit.c (+1380/-0) examples/EinsteinToolkit/ML_BSSN_CL_RHS1.cl (+3477/-0) examples/EinsteinToolkit/ML_BSSN_CL_RHS2.cl (+3877/-0) examples/EinsteinToolkit/Makefile.am (+31/-0) examples/Makefile.am (+1/-5) examples/example1/Makefile.am (+1/-1) examples/example2/Makefile.am (+1/-1) examples/example2a/Makefile.am (+1/-1) examples/kernel/Makefile.am (+1/-1) examples/scalarwave/Makefile.am (+1/-1) examples/trig/Makefile.am (+1/-1) fix-include/CL/cl_platform.h (+24/-7) fix-include/OpenCL/cl.h (+1/-0) fix-include/OpenCL/cl_platform.h (+1/-0) lib/CL/Makefile.am (+2/-2) lib/CL/clBuildProgram.c (+1/-1) lib/CL/clCreateBuffer.c (+2/-2) lib/CL/clCreateCommandQueue.c (+1/-1) lib/CL/clCreateContext.c (+2/-2) lib/CL/clCreateContextFromType.c (+2/-2) lib/CL/clCreateFromGLTexture2D.c (+1/-1) lib/CL/clCreateFromGLTexture3D.c (+1/-1) lib/CL/clCreateImage.c (+2/-2) lib/CL/clCreateImage2D.c (+2/-2) lib/CL/clCreateImage3D.c (+1/-1) lib/CL/clCreateKernel.c (+3/-3) lib/CL/clCreateKernelsInProgram.c (+1/-1) lib/CL/clCreateProgramWithBinary.c (+1/-1) lib/CL/clCreateProgramWithSource.c (+1/-1) lib/CL/clCreateSampler.c (+1/-1) lib/CL/clCreateSubBuffer.c (+1/-1) lib/CL/clCreateUserEvent.c (+1/-1) lib/CL/clEnqueueBarrier.c (+1/-1) lib/CL/clEnqueueCopyBuffer.c (+4/-4) lib/CL/clEnqueueCopyBufferRect.c (+7/-7) lib/CL/clEnqueueCopyBufferToImage.c (+1/-1) lib/CL/clEnqueueCopyImage.c (+1/-1) lib/CL/clEnqueueCopyImageToBuffer.c (+1/-1) lib/CL/clEnqueueMapBuffer.c (+4/-4) lib/CL/clEnqueueMapImage.c (+1/-1) lib/CL/clEnqueueMarker.c (+2/-2) lib/CL/clEnqueueNDRangeKernel.c (+6/-6) lib/CL/clEnqueueNativeKernel.c (+1/-1) lib/CL/clEnqueueReadBuffer.c (+6/-6) lib/CL/clEnqueueReadBufferRect.c (+5/-5) lib/CL/clEnqueueReadImage.c (+1/-1) lib/CL/clEnqueueTask.c (+2/-2) lib/CL/clEnqueueUnmapMemObject.c (+3/-3) lib/CL/clEnqueueWaitForEvents.c (+1/-1) lib/CL/clEnqueueWriteBuffer.c (+6/-6) lib/CL/clEnqueueWriteBufferRect.c (+4/-4) lib/CL/clEnqueueWriteImage.c (+1/-1) lib/CL/clFinish.c (+7/-7) lib/CL/clFlush.c (+2/-2) lib/CL/clGetCommandQueueInfo.c (+21/-6) lib/CL/clGetContextInfo.c (+1/-1) lib/CL/clGetDeviceIDs.c (+1/-1) lib/CL/clGetDeviceInfo.c (+2/-2) lib/CL/clGetEventInfo.c (+1/-1) lib/CL/clGetEventProfilingInfo.c (+1/-1) lib/CL/clGetExtensionFunctionAddress.c (+3/-3) lib/CL/clGetImageInfo.c (+1/-1) lib/CL/clGetKernelInfo.c (+3/-1) lib/CL/clGetKernelWorkGroupInfo.c (+2/-2) lib/CL/clGetMemObjectInfo.c (+3/-1) lib/CL/clGetPlatformIDs.c (+1/-1) lib/CL/clGetPlatformInfo.c (+1/-1) lib/CL/clGetProgramBuildInfo.c (+1/-1) lib/CL/clGetProgramInfo.c (+1/-1) lib/CL/clGetSamplerInfo.c (+1/-1) lib/CL/clGetSupportedImageFormats.c (+1/-1) lib/CL/clIcdGetPlatformIDsKHR.c (+2/-2) lib/CL/clReleaseCommandQueue.c (+2/-2) lib/CL/clReleaseContext.c (+2/-2) lib/CL/clReleaseDevice.c (+1/-1) lib/CL/clReleaseEvent.c (+2/-2) lib/CL/clReleaseKernel.c (+2/-2) lib/CL/clReleaseMemObject.c (+1/-1) lib/CL/clReleaseProgram.c (+1/-1) lib/CL/clReleaseSampler.c (+1/-1) lib/CL/clRetainCommandQueue.c (+1/-1) lib/CL/clRetainContext.c (+1/-1) lib/CL/clRetainDevice.c (+1/-1) lib/CL/clRetainEvent.c (+1/-1) lib/CL/clRetainKernel.c (+1/-1) lib/CL/clRetainMemObject.c (+1/-1) lib/CL/clRetainProgram.c (+1/-1) lib/CL/clRetainSampler.c (+1/-1) lib/CL/clSetEventCallback.c (+1/-1) lib/CL/clSetKernelArg.c (+1/-1) lib/CL/clSetMemObjectDestructorCallback.c (+1/-1) lib/CL/clSetUserEventStatus.c (+1/-1) lib/CL/clUnloadCompiler.c (+1/-1) lib/CL/clWaitForEvents.c (+2/-2) lib/CL/devices/basic/basic.h (+1/-1) lib/CL/devices/pthread/pocl-pthread.h (+1/-1) lib/CL/pocl_cl.h (+26/-14) lib/kernel/x86_64/Makefile.am (+2/-2) lib/kernel/x86_64/fmax.cl (+123/-0) lib/kernel/x86_64/fmin.cl (+123/-0) lib/llvmopencl/Makefile.am (+1/-1) lib/poclu/Makefile.am (+1/-1) scripts/pocl-build.in (+14/-5) scripts/pocl-kernel.in (+5/-1) scripts/pocl-standalone.in (+19/-7) scripts/pocl-workgroup.in (+10/-4) tests/runtime/Makefile.am (+1/-1) tests/workgroup/Makefile.am (+1/-1) |
To merge this branch: | bzr merge lp:~schnetter/pocl/pocl |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Erik Schnetter | Needs Resubmitting | ||
Pekka Jääskeläinen | Needs Fixing | ||
Review via email:
|
Commit message
Description of the change
Make things work on OSX
Configure:
Capture, and later use TARGET
Include:
Add fix-include directory named OpenCL
Add several missing #defines for API and EXT versions
Use fix-include directory in all makefiles
Libraries:
Add PO prefix for run-time function names via a macro
Do not add PO prefix for OSX (which thus does not support ICD)
Scripts:
Hide linker warning about mis-matching architectures
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Pekka Jääskeläinen (pekka-jaaskelainen) wrote : | # |
- 453. By Pekka Jääskeläinen
-
Template-generated static web pages. Generate by running 'make'.
You need python and Mako templates (0.7.3) installed. - 454. By Pekka Jääskeläinen
-
Forgot the Makefile.
- 455. By Pekka Jääskeläinen
-
Added a 'publish' rule. You need a source forge account to upload
the web pages to get them visible at pocl.sourceforge.net. - 456. By Pekka Jääskeläinen
-
Added a link to the info on how to publish the web pages in SF.
- 457. By Pekka Jääskeläinen
-
Events were not recorded in case the profiling queue was not enabled.
The proactive memory allocation strategy was too aggressive leading to
overflows in the allocated memory region size and thus memory allocation
failutres.Now the MatrixMultiplic
ation case of the AMD SDK works also in the benchmark
mode with larger matrix inputs.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Erik Schnetter (schnetter) wrote : | # |
I don't see the conflict markers in my checkout; there is nothing in the files, bzr status reports nothing, and neither does bzr resolve. How do I see these conflict markers?
HOST_CPU is just the CPU, i.e. the first part of the triple. TARGET contains the full triple. Passing just the CPU to clang via the -target flag fails in the pocl-* scripts. The failure mode is that the assembler reports errors about unrecognised pseudo-ops. (The assembler code looks fine, though.) Passing the full triple works fine. I assume I could use HOST instead of TARGET, but TARGET seemed cleaner. Making this work required the changes to the build scripts, as well as to the pthread driver where TARGET is stored as well. The comment there says "target triple", which is TARGET, so I put this there instead of HOST_CPU. I could change TARGET to HOST, but HOST_CPU alone doesn't work for me.
OSX doesn't use the ELF binary format, and doesn't support aliases. (It supports apparently "weakref" aliases, but these require static symbols, so this doesn't help.) I googled, and the consensus seems to be that aliases just don't work on OSX. OSX doesn't really support ICD anyway (at least I get an error about it when I enable it, and the /etc/OpenCL directory doesn't exist), and building without ICD didn't seem to require the PO... names. I will add more comments there.
I have no idea where the warning is coming from. As far I can see, all files are compiled with the respective -target flag. What is more puzzling is that HOST_CPU (and TARGET_CPU) are x86_64, and the target triple is x86_64-
- 458. By Pekka Jääskeläinen
-
Added the first AMD APP SDK test case (MatrixMultipli
cation) to the
test suite (enabled only for ocl-icd build). Removed some 'untested'
warnings (now tested with this test suite case).Automatic disabling of test cases that do not yet work when built with ocl-icd.
Thus, make check should now pass successfully also with the ocl-icd build.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Pekka Jääskeläinen (pekka-jaaskelainen) wrote : | # |
Did you merge from lp:pocl before sending the request? The above "Diff against target"-link says (has conflicts), so maybe it's the Launchpad branch differ that creates those (search from this page with <<<) when it compares against lp:pocl which is not merged to your branch. Thus, you should merge from lp:pocl first.
For tracking the bitcode linkage warning, use the llvm-dis to disassemble the bitcode files. You can also check the bitcode intermediate files in the temp dir (export POCL_LEAVE_
The triplet of the bitcode is printed in the header of the disassembly. First check if the kernel library has the correct triplet by llvm-dis one of the modules in the kernel build dir:
E.g.,
lib/kernel/
target triple = "x86_64"
So, it seems it's nowadays not a triple but just the CPU part, like you say. I didn't know that is legal in the bitcode.
Are the "pseudo ops" related to your operating system's assembler variant then? I.e., LLVM outputs the asm in some default format which is not supported by darwin. How the kernel libs can be built with the CPU only in the triple and the kernel itself (pocl-*) cannot, I do not understand. The Makefile.am of the kernel build dir also just uses -target x86_64 as you can see.
You can debug the pocl-* scripts by adding set -x to the beginning of each of the scripts so it outputs the commands to the shell. Then you can spot the command that produce bitcodes, and you could find the one that for some reason uses x86_64-macos10.8.2 as a triple.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Erik Schnetter (schnetter) wrote : | # |
Apparently I merged before the latest changes to the trunk. (Didn't think of this.) Will merge again.
Yes, I used llvm-dis to look at the architecture. Indeed the architecture is only the CPU type, not the full target triple, even if I use the full target triple in clang's -target option. This is with llvm 3.1. This is also how I notice that the translated kernels have x86_64-macos* as architecture in the bitcode files. I don't know why; as far as I can see, these bitcode files are all build via the scripts (are they not?), and I used "set -x" in all the scripts to see all the build commands that are executed.
It turns out the problem was caused by the option "-target x86_64" in the kernel/x86_64 directory. This target architecture is incompatible with x86_64-
The assembler errors I mention before look like the ones below. They appear when C code is compiled to object code, which happens apparently only for descriptor.so. They do not appear when compiling OpenCL code (-x cl) or when emitting llvm code (-emit-llvm). These errors appear for -target x86_64, but do not appear for -target x86_64-
{{{
+ /Users/
/var/folders/
.type _num_args,@object
^
/var/folders/
.size _num_args, 4
^
/var/folders/
.type _arg_is_
^
/var/folders/
.size _arg_is_pointer, 12
^
/var/folders/
.type _arg_is_
^
/var/folders/
.bss
^
/var/folders/
.size _arg_is_local, 12
^
/var/folders/
.type _arg_is_
^
/var/folders/
.size _arg_is_image, 12
^
/var/folders/
.type _arg_is_
^
/var/folders/
.size _arg_is_sampler, 12
^
/var/folders/
.type _reqd_wg_
^
/var/folders/
.size _reqd_wg_size, 12
...
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Erik Schnetter (schnetter) wrote : | # |
I merged from trunk, and removed the special handling of the llvm warnings.
The code still uses TARGET as target triple instead of HOST_CPU.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Pekka Jääskeläinen (pekka-jaaskelainen) wrote : | # |
You do not need the '-target' switch at all in this command:
/Users/
The descriptor.so should be always built with the default native flags. The descriptor.so.o is a kludge for getting the info of the kernels via the dlopen() interface. It is separate from the rest of the kernel build process. Can you try if it goes away if you remove the -target altogether?
The proper way for getting the kernel meta info to the OpenCL host APIs could be to use bitcode loading directly. E.g., the non-script version Kalle has been implementing can just call the LLVM pass that produces that info directly from the pocl host code.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Kalle Raiskila (kraiskil) wrote : | # |
On 07.12.2012 20:07, Erik Schnetter wrote:
> It turns out the problem was caused by the option "-target x86_64" in
> the kernel/x86_64 directory. This target architecture is incompatible
> with x86_64-
> resolves the issue.
This is the crux of the matter. Why do we have a x86_64 kernel directory
(and all the other platforms too) if we don't use them?
Perhaps we should switch back to compiling these with the HOST/TARGET
flags, and not using a separate lib/kernel/HOST directory for the
basic/pthread devices?
Also note that 'clang -target @TARGET@' will break ARM :)
Could we have a specific, explicit value set in configure
(OCL_NATIVE_
This preferral of HOST over TARGET is, I think, mostly due to the
autoconf lingo. HOST is where the program will run, TARGET is the binary
format the program (if it is a compiler) will produce. In the case of
pocl, when HOST!=TARGET we need a separate device driver anyways (i.e.
TCE, SPU), and the TARGET and HOST variables are ignored. This then
means that it is easy to get confused, and I am happy if it would get
cleared up. So please add extensive comments in the code!
thanks,
kalle
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Pekka Jääskeläinen (pekka-jaaskelainen) wrote : | # |
> This is the crux of the matter. Why do we have a x86_64 kernel directory
> (and all the other platforms too) if we don't use them?
The idea is to be able to have hand-optimized implementations of selected
kernel APIs. This is used only for x86_64 at the moment, so the rest are useless.
It should be used whenever a x86_64* is the target.
> Perhaps we should switch back to compiling these with the HOST/TARGET
> flags, and not using a separate lib/kernel/HOST directory for the
> basic/pthread devices?
OK for the default, but the hand optimized versions should be picked in case available.
> Also note that 'clang -target @TARGET@' will break ARM :)
> Could we have a specific, explicit value set in configure
> (OCL_NATIVE_
Fine by me, better be explicit.
> This preferral of HOST over TARGET is, I think, mostly due to the
> autoconf lingo. HOST is where the program will run, TARGET is the binary
> format the program (if it is a compiler) will produce. In the case of
> pocl, when HOST!=TARGET we need a separate device driver anyways (i.e.
> TCE, SPU), and the TARGET and HOST variables are ignored. This then
> means that it is easy to get confused, and I am happy if it would get
> cleared up. So please add extensive comments in the code!
Yes, this is currently confusing and affects only the HOST=DEVICE case (and thus the basic&pthread CPU drivers). For HOST!=DEVICE we need to have an explicit configure setting (to setup the default device list) anyways.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Erik Schnetter (schnetter) wrote : | # |
On Fri, Dec 7, 2012 at 4:59 PM, Pekka Jääskeläinen <
<email address hidden>> wrote:
> > This is the crux of the matter. Why do we have a x86_64 kernel directory
> > (and all the other platforms too) if we don't use them?
>
> The idea is to be able to have hand-optimized implementations of selected
> kernel APIs. This is used only for x86_64 at the moment, so the rest are
> useless.
> It should be used whenever a x86_64* is the target.
I introduced these optimisations for llvm-3.0, which was really bad with
vectorisation. 3.1 is now much better, and I hear that 3.2 has improved in
this respect even more. My hope is to be able to omit these manual
optimisations, and if this is not possible, to have them performed by llvm
instead of implementing them manually.
-erik
--
Erik Schnetter <email address hidden>
http://
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Erik Schnetter (schnetter) wrote : | # |
This version is the best I could come up with. I wasn't able to use
just x86_64 as target triple; this trips the assembler on OSX. I
therefore have to use HOST (or TARGET, but I'm using HOST now) instead
of HOST_CPU in various places.
- 459. By Pekka Jääskeläinen
-
Test the different alternatives a bit more thoroughly. Doesn't pass at the
moment.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Pekka Jääskeläinen (pekka-jaaskelainen) wrote : | # |
It seems to break ICD-enabled (the default) build on x86_64:
In file included from ../../fix-
../../include/
In file included from ../../fix-
../../include/
clGetPlatformID
clGetPlatformID
...
Etc. for all functions.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Erik Schnetter (schnetter) wrote : | # |
I simplified the logic: On OSX, symbol aliasing is not used (and ICD is disabled). On all other architectures, the logic is unchanged.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Erik Schnetter (schnetter) wrote : | # |
I tested this on Ubuntu. I configured and built pocl both with and without ICD, and both build fine. However, I managed to run only the version without ICD, since there is a problem with the other OpenCL installations on this machine.
- 460. By Pekka Jääskeläinen
-
run_all_tests now tests both with and without ocl-icd and using the
pthread device driver only. Thus it now passes and should stay that
way. You can pass configure options to it if you want to, e.g., install
the finally built pocl:Example of use:
tools/scripts/
run_all_ tests --prefix= /usr/local/ stow/pocl && bzr commit -m "My new modifications that passed all the tests." - 461. By Pekka Jääskeläinen
-
Merge from Erik.
Preview Diff
1 | === modified file 'configure.ac' |
2 | --- configure.ac 2012-12-07 16:38:01 +0000 |
3 | +++ configure.ac 2012-12-09 00:26:22 +0000 |
4 | @@ -587,10 +587,10 @@ |
5 | ;; |
6 | esac |
7 | |
8 | -AC_DEFINE_UNQUOTED([HOST_CPU], "$default_target", [The host CPU type.]) |
9 | AC_DEFINE_UNQUOTED([KERNEL_DIR], "$kernel_dir", [Use the libkernel from lib/kernel/$KERNEL_DIR/]) |
10 | |
11 | AC_SUBST([TARGET], [$target]) |
12 | +AC_DEFINE_UNQUOTED([TARGET], "$target", [The target triple.]) |
13 | AC_SUBST([TARGET_CPU], [$target_cpu]) |
14 | AC_ARG_VAR([TARGET_CLANG_FLAGS], |
15 | [Parameters to for target compilation.]) |
16 | @@ -603,7 +603,9 @@ |
17 | [Parameters to llc for code generation in the target.]) |
18 | |
19 | AC_SUBST([HOST], [$host]) |
20 | +AC_DEFINE_UNQUOTED([HOST], "$host", [The host triple.]) |
21 | AC_SUBST([HOST_CPU], [$host_cpu]) |
22 | +AC_DEFINE_UNQUOTED([HOST_CPU], "$default_target", [The host CPU type.]) |
23 | AC_ARG_VAR([HOST_CLANG_FLAGS], |
24 | [Parameters to for host compilation.]) |
25 | AC_DEFINE_UNQUOTED([HOST_CLANG_FLAGS], |
26 | @@ -755,6 +757,7 @@ |
27 | examples/Parboil/Makefile |
28 | examples/ViennaCL/Makefile |
29 | examples/AMD/Makefile |
30 | + examples/EinsteinToolkit/Makefile |
31 | scripts/Makefile |
32 | tests/Makefile |
33 | tests/regression/Makefile |
34 | |
35 | === modified file 'doc/binary_format.txt' |
36 | --- doc/binary_format.txt 2012-05-03 18:37:44 +0000 |
37 | +++ doc/binary_format.txt 2012-12-09 00:26:22 +0000 |
38 | @@ -16,7 +16,7 @@ |
39 | mailing list. |
40 | |
41 | We could create a tar, zip or similar archive of the whole temp directory |
42 | -hierarcy. Implementing the queries for binary sizes etc. is |
43 | +hierarchy. Implementing the queries for binary sizes etc. is |
44 | problematic as they need to build the archive just for the file size |
45 | check. |
46 | |
47 | |
48 | === modified file 'doc/envs.txt' |
49 | --- doc/envs.txt 2012-10-24 07:57:51 +0000 |
50 | +++ doc/envs.txt 2012-12-09 00:26:22 +0000 |
51 | @@ -40,7 +40,7 @@ |
52 | |
53 | POCL_MAX_WORK_GROUP_SIZE |
54 | |
55 | -Forces the maximum WG size returned by the device or kernel work group quries |
56 | +Forces the maximum WG size returned by the device or kernel work group queries |
57 | to be at most this number. |
58 | |
59 | POCL_MAX_PTHREAD_COUNT |
60 | |
61 | === modified file 'doc/handling_loops.txt' |
62 | --- doc/handling_loops.txt 2012-02-21 19:19:30 +0000 |
63 | +++ doc/handling_loops.txt 2012-12-09 00:26:22 +0000 |
64 | @@ -6,7 +6,7 @@ |
65 | 1) loops that contain barriers |
66 | 2) loops that do not contain barriers |
67 | |
68 | -1) Is handled by adding implict barriers before the loop and replicating |
69 | +1) Is handled by adding implicit barriers before the loop and replicating |
70 | the header and the body separately (Carlos please clarify the details). |
71 | |
72 | 2) Is handled as a single ParallelRegion. The whole loop is replicated. |
73 | |
74 | === added directory 'examples/EinsteinToolkit' |
75 | === added file 'examples/EinsteinToolkit/EinsteinToolkit.c' |
76 | --- examples/EinsteinToolkit/EinsteinToolkit.c 1970-01-01 00:00:00 +0000 |
77 | +++ examples/EinsteinToolkit/EinsteinToolkit.c 2012-12-09 00:26:22 +0000 |
78 | @@ -0,0 +1,1380 @@ |
79 | +/* EinsteinToolkit - Evolve the Einstein equations (BSSN formulation) */ |
80 | + |
81 | +/* Note: The number of iterations can be modified. It should be |
82 | + adapted such that the total run time (reported below) is |
83 | + approximately between 10 and 100 seconds. The number of iterations |
84 | + does not influence the benchmark result, it only influences the |
85 | + benchmark's accuracy. Small numbers of iterations lead to |
86 | + inaccurate results. */ |
87 | +int const niters = 100; |
88 | + |
89 | + |
90 | + |
91 | +/* Build options: |
92 | + |
93 | + Redshift, Apple's OpenCL: |
94 | + clang -I/System/Library/Frameworks/OpenCL.framework/Headers -L/System/Library/Frameworks/OpenCL.framework/Libraries -o EinsteinToolkit EinsteinToolkit.c -Wl,-framework,OpenCL |
95 | + |
96 | + Nvidia, AMD's OpenCL: |
97 | + clang -I/usr/local/AMD-APP-SDK-v2.8-RC-lnx64/include -L /usr/local/AMD-APP-SDK-v2.8-RC-lnx64/lib -o EinsteinToolkit EinsteinToolkit.c -lOpenCL -lm |
98 | + |
99 | + Nvidia, Intel's OpenCL: |
100 | + clang -I/usr/local/intel_ocl_sdk_2012_x64/usr/include -L/usr/local/intel_ocl_sdk_2012_x64/usr/lib64 -o EinsteinToolkit EinsteinToolkit.c -lOpenCL |
101 | + |
102 | + Nvidia, Nvidia's OpenCL: |
103 | + clang -I/usr/local/cuda-5.0/include -L/usr/local/cuda-5.0/lib64 -o EinsteinToolkit EinsteinToolkit.c -lOpenCL -lm |
104 | +*/ |
105 | + |
106 | + |
107 | + |
108 | +/* Run times on various systems: |
109 | + * |
110 | + * Redshift, laptop, OSX, Intel(R) Core(TM) i7-3820QM CPU @ 2.70GHz: |
111 | + * Theoretical best: 0.0393519 usec per gpu |
112 | + * Apple's OpenCL: 0.213103 usec per gpu (with VECTOR_SIZE_I=2) |
113 | + * pocl: 0.55614 usec per gpu (with THREAD_COUNT_ENV=4) |
114 | + * |
115 | + * Nvidia, workstation, Intel(R) Xeon(R) CPU X5675 @ 3.07GHz |
116 | + * Theoretical best: 0.0230727 usec per gpu |
117 | + * pocl: 0.267914 usec per gpu |
118 | +*/ |
119 | + |
120 | + |
121 | + |
122 | +#include <assert.h> |
123 | +#include <math.h> |
124 | +#include <stdio.h> |
125 | +#include <stdlib.h> |
126 | +#include <sys/time.h> |
127 | + |
128 | +#ifdef __APPLE__ |
129 | +# include <OpenCL/opencl.h> |
130 | +#else |
131 | +# include <CL/opencl.h> |
132 | +#endif |
133 | + |
134 | + |
135 | + |
136 | +// Stringify |
137 | +#define XSTR(x) #x |
138 | +#define STR(x) XSTR(x) |
139 | + |
140 | +// Divide while rounding down |
141 | +static inline size_t divdown(size_t const a, size_t const b) |
142 | +{ |
143 | + return a/b; |
144 | +} |
145 | + |
146 | +// Divide while rounding up |
147 | +static inline size_t divup(size_t const a, size_t const b) |
148 | +{ |
149 | + return (a+b-1)/b; |
150 | +} |
151 | + |
152 | +// Round down |
153 | +static inline size_t rounddown(size_t const a, size_t const b) |
154 | +{ |
155 | + return divdown(a, b) * b; |
156 | +} |
157 | + |
158 | +// Round up |
159 | +static inline size_t roundup(size_t const a, size_t const b) |
160 | +{ |
161 | + return divup(a, b) * b; |
162 | +} |
163 | + |
164 | + |
165 | + |
166 | +// Global OpenCL handles |
167 | +cl_platform_id platform_id; |
168 | +cl_device_id device_id; |
169 | +cl_context context; |
170 | +cl_command_queue cmd_queue; |
171 | + |
172 | + |
173 | + |
174 | +// Code generation choices: |
175 | +#define VECTORISE_ALIGNED_ARRAYS 1 |
176 | + |
177 | +// Loop traversal choices: |
178 | +#define VECTOR_SIZE_I 1 |
179 | +#define VECTOR_SIZE_J 1 |
180 | +#define VECTOR_SIZE_K 1 |
181 | +#define UNROLL_SIZE_I 1 |
182 | +#define UNROLL_SIZE_J 1 |
183 | +#define UNROLL_SIZE_K 1 |
184 | +#define GROUP_SIZE_I 1 |
185 | +#define GROUP_SIZE_J 1 |
186 | +#define GROUP_SIZE_K 1 |
187 | +#define TILE_SIZE_I 4 |
188 | +#define TILE_SIZE_J 4 |
189 | +#define TILE_SIZE_K 4 |
190 | + |
191 | + |
192 | + |
193 | +// Cactus definitions |
194 | + |
195 | +#define dim 3 |
196 | + |
197 | +typedef int CCTK_INT; |
198 | +typedef double CCTK_REAL; |
199 | + |
200 | + |
201 | + |
202 | +typedef struct { |
203 | + // Doubles first, then ints, to ensure proper alignment |
204 | + // Coordinates: |
205 | + double cctk_origin_space[dim]; |
206 | + double cctk_delta_space[dim]; |
207 | + double cctk_time; |
208 | + double cctk_delta_time; |
209 | + // Grid structure properties: |
210 | + int cctk_gsh[dim]; |
211 | + int cctk_lbnd[dim]; |
212 | + int cctk_lsh[dim]; |
213 | + int cctk_ash[dim]; |
214 | + // Loop settings: |
215 | + int lmin[dim]; // loop region |
216 | + int lmax[dim]; |
217 | + int imin[dim]; // active region |
218 | + int imax[dim]; |
219 | +} cGH; |
220 | + |
221 | + |
222 | + |
223 | +// Cactus parameters: |
224 | +typedef struct { |
225 | + CCTK_REAL A_bound_limit; |
226 | + CCTK_REAL A_bound_scalar; |
227 | + CCTK_REAL A_bound_speed; |
228 | + CCTK_REAL alpha_bound_limit; |
229 | + CCTK_REAL alpha_bound_scalar; |
230 | + CCTK_REAL alpha_bound_speed; |
231 | + CCTK_REAL AlphaDriver; |
232 | + CCTK_REAL At11_bound_limit; |
233 | + CCTK_REAL At11_bound_scalar; |
234 | + CCTK_REAL At11_bound_speed; |
235 | + CCTK_REAL At12_bound_limit; |
236 | + CCTK_REAL At12_bound_scalar; |
237 | + CCTK_REAL At12_bound_speed; |
238 | + CCTK_REAL At13_bound_limit; |
239 | + CCTK_REAL At13_bound_scalar; |
240 | + CCTK_REAL At13_bound_speed; |
241 | + CCTK_REAL At22_bound_limit; |
242 | + CCTK_REAL At22_bound_scalar; |
243 | + CCTK_REAL At22_bound_speed; |
244 | + CCTK_REAL At23_bound_limit; |
245 | + CCTK_REAL At23_bound_scalar; |
246 | + CCTK_REAL At23_bound_speed; |
247 | + CCTK_REAL At33_bound_limit; |
248 | + CCTK_REAL At33_bound_scalar; |
249 | + CCTK_REAL At33_bound_speed; |
250 | + CCTK_REAL B1_bound_limit; |
251 | + CCTK_REAL B1_bound_scalar; |
252 | + CCTK_REAL B1_bound_speed; |
253 | + CCTK_REAL B2_bound_limit; |
254 | + CCTK_REAL B2_bound_scalar; |
255 | + CCTK_REAL B2_bound_speed; |
256 | + CCTK_REAL B3_bound_limit; |
257 | + CCTK_REAL B3_bound_scalar; |
258 | + CCTK_REAL B3_bound_speed; |
259 | + CCTK_REAL beta1_bound_limit; |
260 | + CCTK_REAL beta1_bound_scalar; |
261 | + CCTK_REAL beta1_bound_speed; |
262 | + CCTK_REAL beta2_bound_limit; |
263 | + CCTK_REAL beta2_bound_scalar; |
264 | + CCTK_REAL beta2_bound_speed; |
265 | + CCTK_REAL beta3_bound_limit; |
266 | + CCTK_REAL beta3_bound_scalar; |
267 | + CCTK_REAL beta3_bound_speed; |
268 | + CCTK_REAL BetaDriver; |
269 | + CCTK_REAL EpsDiss; |
270 | + CCTK_REAL gt11_bound_limit; |
271 | + CCTK_REAL gt11_bound_scalar; |
272 | + CCTK_REAL gt11_bound_speed; |
273 | + CCTK_REAL gt12_bound_limit; |
274 | + CCTK_REAL gt12_bound_scalar; |
275 | + CCTK_REAL gt12_bound_speed; |
276 | + CCTK_REAL gt13_bound_limit; |
277 | + CCTK_REAL gt13_bound_scalar; |
278 | + CCTK_REAL gt13_bound_speed; |
279 | + CCTK_REAL gt22_bound_limit; |
280 | + CCTK_REAL gt22_bound_scalar; |
281 | + CCTK_REAL gt22_bound_speed; |
282 | + CCTK_REAL gt23_bound_limit; |
283 | + CCTK_REAL gt23_bound_scalar; |
284 | + CCTK_REAL gt23_bound_speed; |
285 | + CCTK_REAL gt33_bound_limit; |
286 | + CCTK_REAL gt33_bound_scalar; |
287 | + CCTK_REAL gt33_bound_speed; |
288 | + CCTK_REAL harmonicF; |
289 | + CCTK_REAL LapseACoeff; |
290 | + CCTK_REAL LapseAdvectionCoeff; |
291 | + CCTK_REAL MinimumLapse; |
292 | + CCTK_REAL ML_curv_bound_limit; |
293 | + CCTK_REAL ML_curv_bound_scalar; |
294 | + CCTK_REAL ML_curv_bound_speed; |
295 | + CCTK_REAL ML_dtlapse_bound_limit; |
296 | + CCTK_REAL ML_dtlapse_bound_scalar; |
297 | + CCTK_REAL ML_dtlapse_bound_speed; |
298 | + CCTK_REAL ML_dtshift_bound_limit; |
299 | + CCTK_REAL ML_dtshift_bound_scalar; |
300 | + CCTK_REAL ML_dtshift_bound_speed; |
301 | + CCTK_REAL ML_Gamma_bound_limit; |
302 | + CCTK_REAL ML_Gamma_bound_scalar; |
303 | + CCTK_REAL ML_Gamma_bound_speed; |
304 | + CCTK_REAL ML_lapse_bound_limit; |
305 | + CCTK_REAL ML_lapse_bound_scalar; |
306 | + CCTK_REAL ML_lapse_bound_speed; |
307 | + CCTK_REAL ML_log_confac_bound_limit; |
308 | + CCTK_REAL ML_log_confac_bound_scalar; |
309 | + CCTK_REAL ML_log_confac_bound_speed; |
310 | + CCTK_REAL ML_metric_bound_limit; |
311 | + CCTK_REAL ML_metric_bound_scalar; |
312 | + CCTK_REAL ML_metric_bound_speed; |
313 | + CCTK_REAL ML_shift_bound_limit; |
314 | + CCTK_REAL ML_shift_bound_scalar; |
315 | + CCTK_REAL ML_shift_bound_speed; |
316 | + CCTK_REAL ML_trace_curv_bound_limit; |
317 | + CCTK_REAL ML_trace_curv_bound_scalar; |
318 | + CCTK_REAL ML_trace_curv_bound_speed; |
319 | + CCTK_REAL phi_bound_limit; |
320 | + CCTK_REAL phi_bound_scalar; |
321 | + CCTK_REAL phi_bound_speed; |
322 | + CCTK_REAL ShiftAdvectionCoeff; |
323 | + CCTK_REAL ShiftBCoeff; |
324 | + CCTK_REAL ShiftGammaCoeff; |
325 | + CCTK_REAL SpatialBetaDriverRadius; |
326 | + CCTK_REAL SpatialShiftGammaCoeffRadius; |
327 | + CCTK_REAL trK_bound_limit; |
328 | + CCTK_REAL trK_bound_scalar; |
329 | + CCTK_REAL trK_bound_speed; |
330 | + CCTK_REAL Xt1_bound_limit; |
331 | + CCTK_REAL Xt1_bound_scalar; |
332 | + CCTK_REAL Xt1_bound_speed; |
333 | + CCTK_REAL Xt2_bound_limit; |
334 | + CCTK_REAL Xt2_bound_scalar; |
335 | + CCTK_REAL Xt2_bound_speed; |
336 | + CCTK_REAL Xt3_bound_limit; |
337 | + CCTK_REAL Xt3_bound_scalar; |
338 | + CCTK_REAL Xt3_bound_speed; |
339 | + CCTK_INT conformalMethod; |
340 | + CCTK_INT fdOrder; |
341 | + CCTK_INT harmonicN; |
342 | + CCTK_INT harmonicShift; |
343 | + CCTK_INT ML_BSSN_CL_Advect_calc_every; |
344 | + CCTK_INT ML_BSSN_CL_Advect_calc_offset; |
345 | + CCTK_INT ML_BSSN_CL_boundary_calc_every; |
346 | + CCTK_INT ML_BSSN_CL_boundary_calc_offset; |
347 | + CCTK_INT ML_BSSN_CL_constraints1_calc_every; |
348 | + CCTK_INT ML_BSSN_CL_constraints1_calc_offset; |
349 | + CCTK_INT ML_BSSN_CL_constraints2_calc_every; |
350 | + CCTK_INT ML_BSSN_CL_constraints2_calc_offset; |
351 | + CCTK_INT ML_BSSN_CL_convertFromADMBase_calc_every; |
352 | + CCTK_INT ML_BSSN_CL_convertFromADMBase_calc_offset; |
353 | + CCTK_INT ML_BSSN_CL_convertFromADMBaseGamma_calc_every; |
354 | + CCTK_INT ML_BSSN_CL_convertFromADMBaseGamma_calc_offset; |
355 | + CCTK_INT ML_BSSN_CL_convertToADMBase_calc_every; |
356 | + CCTK_INT ML_BSSN_CL_convertToADMBase_calc_offset; |
357 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_every; |
358 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_offset; |
359 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_every; |
360 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_offset; |
361 | + CCTK_INT ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_every; |
362 | + CCTK_INT ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_offset; |
363 | + CCTK_INT ML_BSSN_CL_Dissipation_calc_every; |
364 | + CCTK_INT ML_BSSN_CL_Dissipation_calc_offset; |
365 | + CCTK_INT ML_BSSN_CL_enforce_calc_every; |
366 | + CCTK_INT ML_BSSN_CL_enforce_calc_offset; |
367 | + CCTK_INT ML_BSSN_CL_InitGamma_calc_every; |
368 | + CCTK_INT ML_BSSN_CL_InitGamma_calc_offset; |
369 | + CCTK_INT ML_BSSN_CL_InitRHS_calc_every; |
370 | + CCTK_INT ML_BSSN_CL_InitRHS_calc_offset; |
371 | + CCTK_INT ML_BSSN_CL_MaxNumArrayEvolvedVars; |
372 | + CCTK_INT ML_BSSN_CL_MaxNumEvolvedVars; |
373 | + CCTK_INT ML_BSSN_CL_Minkowski_calc_every; |
374 | + CCTK_INT ML_BSSN_CL_Minkowski_calc_offset; |
375 | + CCTK_INT ML_BSSN_CL_RHS1_calc_every; |
376 | + CCTK_INT ML_BSSN_CL_RHS1_calc_offset; |
377 | + CCTK_INT ML_BSSN_CL_RHS2_calc_every; |
378 | + CCTK_INT ML_BSSN_CL_RHS2_calc_offset; |
379 | + CCTK_INT ML_BSSN_CL_RHSStaticBoundary_calc_every; |
380 | + CCTK_INT ML_BSSN_CL_RHSStaticBoundary_calc_offset; |
381 | + CCTK_INT other_timelevels; |
382 | + CCTK_INT rhs_timelevels; |
383 | + CCTK_INT ShiftAlphaPower; |
384 | + CCTK_INT timelevels; |
385 | + CCTK_INT verbose; |
386 | +} cctk_parameters_t; |
387 | + |
388 | + |
389 | + |
390 | +typedef struct { |
391 | + CCTK_REAL* ptr; |
392 | + cl_mem mem; |
393 | +} ptr_t; |
394 | + |
395 | +typedef struct { |
396 | + ptr_t x; |
397 | + ptr_t y; |
398 | + ptr_t z; |
399 | + ptr_t r; |
400 | + ptr_t At11; |
401 | + ptr_t At11_p; |
402 | + ptr_t At11_p_p; |
403 | + ptr_t At12; |
404 | + ptr_t At12_p; |
405 | + ptr_t At12_p_p; |
406 | + ptr_t At13; |
407 | + ptr_t At13_p; |
408 | + ptr_t At13_p_p; |
409 | + ptr_t At22; |
410 | + ptr_t At22_p; |
411 | + ptr_t At22_p_p; |
412 | + ptr_t At23; |
413 | + ptr_t At23_p; |
414 | + ptr_t At23_p_p; |
415 | + ptr_t At33; |
416 | + ptr_t At33_p; |
417 | + ptr_t At33_p_p; |
418 | + ptr_t A; |
419 | + ptr_t A_p; |
420 | + ptr_t A_p_p; |
421 | + ptr_t Arhs; |
422 | + ptr_t B1; |
423 | + ptr_t B1_p; |
424 | + ptr_t B1_p_p; |
425 | + ptr_t B2; |
426 | + ptr_t B2_p; |
427 | + ptr_t B2_p_p; |
428 | + ptr_t B3; |
429 | + ptr_t B3_p; |
430 | + ptr_t B3_p_p; |
431 | + ptr_t B1rhs; |
432 | + ptr_t B2rhs; |
433 | + ptr_t B3rhs; |
434 | + ptr_t Xt1; |
435 | + ptr_t Xt1_p; |
436 | + ptr_t Xt1_p_p; |
437 | + ptr_t Xt2; |
438 | + ptr_t Xt2_p; |
439 | + ptr_t Xt2_p_p; |
440 | + ptr_t Xt3; |
441 | + ptr_t Xt3_p; |
442 | + ptr_t Xt3_p_p; |
443 | + ptr_t Xt1rhs; |
444 | + ptr_t Xt2rhs; |
445 | + ptr_t Xt3rhs; |
446 | + ptr_t alpha; |
447 | + ptr_t alpha_p; |
448 | + ptr_t alpha_p_p; |
449 | + ptr_t alpharhs; |
450 | + ptr_t phi; |
451 | + ptr_t phi_p; |
452 | + ptr_t phi_p_p; |
453 | + ptr_t phirhs; |
454 | + ptr_t gt11; |
455 | + ptr_t gt11_p; |
456 | + ptr_t gt11_p_p; |
457 | + ptr_t gt12; |
458 | + ptr_t gt12_p; |
459 | + ptr_t gt12_p_p; |
460 | + ptr_t gt13; |
461 | + ptr_t gt13_p; |
462 | + ptr_t gt13_p_p; |
463 | + ptr_t gt22; |
464 | + ptr_t gt22_p; |
465 | + ptr_t gt22_p_p; |
466 | + ptr_t gt23; |
467 | + ptr_t gt23_p; |
468 | + ptr_t gt23_p_p; |
469 | + ptr_t gt33; |
470 | + ptr_t gt33_p; |
471 | + ptr_t gt33_p_p; |
472 | + ptr_t gt11rhs; |
473 | + ptr_t gt12rhs; |
474 | + ptr_t gt13rhs; |
475 | + ptr_t gt22rhs; |
476 | + ptr_t gt23rhs; |
477 | + ptr_t gt33rhs; |
478 | + ptr_t beta1; |
479 | + ptr_t beta1_p; |
480 | + ptr_t beta1_p_p; |
481 | + ptr_t beta2; |
482 | + ptr_t beta2_p; |
483 | + ptr_t beta2_p_p; |
484 | + ptr_t beta3; |
485 | + ptr_t beta3_p; |
486 | + ptr_t beta3_p_p; |
487 | + ptr_t beta1rhs; |
488 | + ptr_t beta2rhs; |
489 | + ptr_t beta3rhs; |
490 | + ptr_t trK; |
491 | + ptr_t trK_p; |
492 | + ptr_t trK_p_p; |
493 | + ptr_t trKrhs; |
494 | + ptr_t At11rhs; |
495 | + ptr_t At12rhs; |
496 | + ptr_t At13rhs; |
497 | + ptr_t At22rhs; |
498 | + ptr_t At23rhs; |
499 | + ptr_t At33rhs; |
500 | +} cctk_arguments_t; |
501 | + |
502 | + |
503 | + |
504 | +static void allocate(cGH const* const cctkGH, |
505 | + ptr_t* const ptr, |
506 | + CCTK_REAL const val) |
507 | +{ |
508 | + int const nsize = |
509 | + cctkGH->cctk_ash[0] * cctkGH->cctk_ash[1] * cctkGH->cctk_ash[2]; |
510 | + ptr->ptr = malloc(nsize * sizeof(CCTK_REAL)); |
511 | + assert(ptr->ptr); |
512 | + for (int k=0; k<cctkGH->cctk_lsh[2]; ++k) { |
513 | + for (int j=0; j<cctkGH->cctk_lsh[1]; ++j) { |
514 | + for (int i=0; i<cctkGH->cctk_lsh[0]; ++i) { |
515 | + int const ind3d = |
516 | + i + cctkGH->cctk_ash[0] * (j + cctkGH->cctk_ash[1] * k); |
517 | + ptr->ptr[ind3d] = val; |
518 | + } |
519 | + } |
520 | + } |
521 | + ptr->mem = clCreateBuffer(context, CL_MEM_COPY_HOST_PTR, |
522 | + nsize * sizeof(CCTK_REAL), ptr->ptr, NULL); |
523 | + assert(ptr->mem); |
524 | +} |
525 | + |
526 | + |
527 | + |
528 | +void setup() |
529 | +{ |
530 | + cl_int cerr; |
531 | + |
532 | + // Choose a platform and a context (basically a device) |
533 | + cl_uint num_platforms; |
534 | + clGetPlatformIDs(0, NULL, &num_platforms); |
535 | + cl_platform_id platform_ids[num_platforms]; |
536 | + clGetPlatformIDs(num_platforms, &platform_ids[0], &num_platforms); |
537 | + if (num_platforms <= 0) { |
538 | + fprintf(stderr, "No OpenCL platforms found\n"); |
539 | + assert(0); |
540 | + } |
541 | + assert(num_platforms > 0); |
542 | + |
543 | + cl_device_type const want_device_types = CL_DEVICE_TYPE_CPU; |
544 | + // CL_DEVICE_TYPE_GPU |
545 | + // CL_DEVICE_TYPE_ACCELERATOR |
546 | + // CL_DEVICE_TYPE_CPU | CL_DEVICE_TYPE_GPU | CL_DEVICE_TYPE_ACCELERATOR |
547 | + |
548 | + // Loop over all platforms |
549 | + platform_id = 0; |
550 | + for (cl_uint platform = 0; platform < num_platforms; ++platform) { |
551 | + |
552 | + cl_platform_id const tmp_platform_id = platform_ids[platform]; |
553 | + printf("OpenCL platform #%d:\n", platform); |
554 | + |
555 | + size_t platform_name_length; |
556 | + clGetPlatformInfo(tmp_platform_id, CL_PLATFORM_NAME, |
557 | + 0, NULL, &platform_name_length); |
558 | + char platform_name[platform_name_length]; |
559 | + clGetPlatformInfo(tmp_platform_id, CL_PLATFORM_NAME, |
560 | + platform_name_length, platform_name, NULL); |
561 | + printf(" OpenCL platform name: %s\n", platform_name); |
562 | + size_t platform_vendor_length; |
563 | + clGetPlatformInfo(tmp_platform_id, CL_PLATFORM_VENDOR, |
564 | + 0, NULL, &platform_vendor_length); |
565 | + char platform_vendor[platform_vendor_length]; |
566 | + clGetPlatformInfo(tmp_platform_id, CL_PLATFORM_VENDOR, |
567 | + platform_vendor_length, platform_vendor, NULL); |
568 | + printf(" OpenCL platform vendor: %s\n", platform_vendor); |
569 | + |
570 | + cl_context_properties const cprops[] = |
571 | + {CL_CONTEXT_PLATFORM, (cl_context_properties)tmp_platform_id, 0}; |
572 | + context = |
573 | + clCreateContextFromType(cprops, want_device_types, NULL, NULL, &cerr); |
574 | + if (cerr == CL_SUCCESS) { |
575 | + platform_id = tmp_platform_id; |
576 | + } |
577 | + } |
578 | + if (platform_id == 0) { |
579 | + // Could not find a context on any platform, abort |
580 | + fprintf(stderr, "Could not create OpenCL context for selected device type\n"); |
581 | + assert(0); |
582 | + } |
583 | + |
584 | + size_t ndevice_ids; |
585 | + clGetContextInfo(context, CL_CONTEXT_DEVICES, 0, NULL, &ndevice_ids); |
586 | + ndevice_ids /= sizeof(cl_device_id); |
587 | + cl_device_id device_ids[ndevice_ids]; |
588 | + clGetContextInfo(context, CL_CONTEXT_DEVICES, |
589 | + ndevice_ids*sizeof(cl_device_id), device_ids, NULL); |
590 | + assert(ndevice_ids >= 1); |
591 | + device_id = device_ids[0]; |
592 | + |
593 | + size_t device_name_length; |
594 | + clGetDeviceInfo(device_id, CL_DEVICE_NAME, 0, NULL, &device_name_length); |
595 | + char device_name[device_name_length]; |
596 | + clGetDeviceInfo(device_id, CL_DEVICE_NAME, |
597 | + device_name_length, device_name, NULL); |
598 | + printf("OpenCL device name: %s\n", device_name); |
599 | + |
600 | + clGetDeviceInfo(device_id, CL_DEVICE_PLATFORM, |
601 | + sizeof platform_id, &platform_id, NULL); |
602 | + size_t platform_name_length; |
603 | + clGetPlatformInfo(platform_id, CL_PLATFORM_NAME, |
604 | + 0, NULL, &platform_name_length); |
605 | + char platform_name[platform_name_length]; |
606 | + clGetPlatformInfo(platform_id, CL_PLATFORM_NAME, |
607 | + platform_name_length, platform_name, NULL); |
608 | + printf("OpenCL platform name: %s\n", platform_name); |
609 | + size_t platform_vendor_length; |
610 | + clGetPlatformInfo(platform_id, CL_PLATFORM_VENDOR, |
611 | + 0, NULL, &platform_vendor_length); |
612 | + char platform_vendor[platform_vendor_length]; |
613 | + clGetPlatformInfo(platform_id, CL_PLATFORM_VENDOR, |
614 | + platform_vendor_length, platform_vendor, NULL); |
615 | + printf("OpenCL platform vendor: %s\n", platform_vendor); |
616 | + |
617 | + cmd_queue = clCreateCommandQueue(context, device_id, 0, NULL); |
618 | + assert(cmd_queue); |
619 | +} |
620 | + |
621 | + |
622 | + |
623 | +void init(cGH * const cctkGH, |
624 | + cctk_parameters_t* const cctk_parameters, |
625 | + cctk_arguments_t * const cctk_arguments) |
626 | +{ |
627 | + cctkGH->cctk_origin_space[0] = 0.0; |
628 | + cctkGH->cctk_origin_space[1] = 0.0; |
629 | + cctkGH->cctk_origin_space[2] = 0.0; |
630 | + cctkGH->cctk_delta_space[0] = 1.0; |
631 | + cctkGH->cctk_delta_space[1] = 1.0; |
632 | + cctkGH->cctk_delta_space[2] = 1.0; |
633 | + cctkGH->cctk_time = 0.0; |
634 | + cctkGH->cctk_delta_time = 1.0; |
635 | + cctkGH->cctk_gsh[0] = 70; |
636 | + cctkGH->cctk_gsh[1] = 70; |
637 | + cctkGH->cctk_gsh[2] = 70; |
638 | + cctkGH->cctk_lbnd[0] = 0; |
639 | + cctkGH->cctk_lbnd[1] = 0; |
640 | + cctkGH->cctk_lbnd[2] = 0; |
641 | + cctkGH->cctk_lsh[0] = cctkGH->cctk_gsh[0]; |
642 | + cctkGH->cctk_lsh[1] = cctkGH->cctk_gsh[1]; |
643 | + cctkGH->cctk_lsh[2] = cctkGH->cctk_gsh[2]; |
644 | + cctkGH->cctk_ash[0] = roundup(cctkGH->cctk_lsh[0], VECTOR_SIZE_I); |
645 | + cctkGH->cctk_ash[1] = roundup(cctkGH->cctk_lsh[1], VECTOR_SIZE_J); |
646 | + cctkGH->cctk_ash[2] = roundup(cctkGH->cctk_lsh[2], VECTOR_SIZE_K); |
647 | + // Looping region (for all threads combined) |
648 | + cctkGH->imin[0] = 3; |
649 | + cctkGH->imin[1] = 3; |
650 | + cctkGH->imin[2] = 3; |
651 | + cctkGH->imax[0] = cctkGH->cctk_lsh[0] - 3; |
652 | + cctkGH->imax[1] = cctkGH->cctk_lsh[1] - 3; |
653 | + cctkGH->imax[2] = cctkGH->cctk_lsh[2] - 3; |
654 | + // Active region (for this thread) |
655 | + cctkGH->lmin[0] = rounddown(cctkGH->imin[0], VECTOR_SIZE_I); |
656 | + cctkGH->lmin[1] = rounddown(cctkGH->imin[1], VECTOR_SIZE_J); |
657 | + cctkGH->lmin[2] = rounddown(cctkGH->imin[2], VECTOR_SIZE_K); |
658 | + cctkGH->lmax[0] = cctkGH->lmin[0] + roundup(cctkGH->imax[0] - cctkGH->lmin[0], |
659 | + VECTOR_SIZE_I * UNROLL_SIZE_I); |
660 | + cctkGH->lmax[1] = cctkGH->lmin[1] + roundup(cctkGH->imax[1] - cctkGH->lmin[1], |
661 | + VECTOR_SIZE_J * UNROLL_SIZE_J); |
662 | + cctkGH->lmax[2] = cctkGH->lmin[2] + roundup(cctkGH->imax[2] - cctkGH->lmin[2], |
663 | + VECTOR_SIZE_K * UNROLL_SIZE_K); |
664 | + printf("cctkGH:\n"); |
665 | + printf(" gsh=[%d,%d,%d]\n", cctkGH->cctk_gsh[0], cctkGH->cctk_gsh[1], cctkGH->cctk_gsh[2]); |
666 | + printf(" lbnd=[%d,%d,%d]\n", cctkGH->cctk_lbnd[0], cctkGH->cctk_lbnd[1], cctkGH->cctk_lbnd[2]); |
667 | + printf(" lsh=[%d,%d,%d]\n", cctkGH->cctk_lsh[0], cctkGH->cctk_lsh[1], cctkGH->cctk_lsh[2]); |
668 | + printf(" ash=[%d,%d,%d]\n", cctkGH->cctk_ash[0], cctkGH->cctk_ash[1], cctkGH->cctk_ash[2]); |
669 | + printf(" imin=[%d,%d,%d]\n", cctkGH->imin[0], cctkGH->imin[1], cctkGH->imin[2]); |
670 | + printf(" imax=[%d,%d,%d]\n", cctkGH->imax[0], cctkGH->imax[1], cctkGH->imax[2]); |
671 | + printf(" lmin=[%d,%d,%d]\n", cctkGH->lmin[0], cctkGH->lmin[1], cctkGH->lmin[2]); |
672 | + printf(" lmax=[%d,%d,%d]\n", cctkGH->lmax[0], cctkGH->lmax[1], cctkGH->lmax[2]); |
673 | + |
674 | + /* cctk_parameters->A_bound_limit = 0.0; */ |
675 | + /* cctk_parameters->A_bound_scalar = 0.0; */ |
676 | + /* cctk_parameters->A_bound_speed = 0.0; */ |
677 | + /* cctk_parameters->alpha_bound_limit = 0.0; */ |
678 | + /* cctk_parameters->alpha_bound_scalar = 0.0; */ |
679 | + /* cctk_parameters->alpha_bound_speed = 0.0; */ |
680 | + /* cctk_parameters->AlphaDriver = 1.0; */ |
681 | + /* cctk_parameters->At11_bound_limit = 0.0; */ |
682 | + /* cctk_parameters->At11_bound_scalar = 0.0; */ |
683 | + /* cctk_parameters->At11_bound_speed = 0.0; */ |
684 | + /* cctk_parameters->At12_bound_limit = 0.0; */ |
685 | + /* cctk_parameters->At12_bound_scalar = 0.0; */ |
686 | + /* cctk_parameters->At12_bound_speed = 0.0; */ |
687 | + /* cctk_parameters->At13_bound_limit = 0.0; */ |
688 | + /* cctk_parameters->At13_bound_scalar = 0.0; */ |
689 | + /* cctk_parameters->At13_bound_speed = 0.0; */ |
690 | + /* cctk_parameters->At22_bound_limit = 0.0; */ |
691 | + /* cctk_parameters->At22_bound_scalar = 0.0; */ |
692 | + /* cctk_parameters->At22_bound_speed = 0.0; */ |
693 | + /* cctk_parameters->At23_bound_limit = 0.0; */ |
694 | + /* cctk_parameters->At23_bound_scalar = 0.0; */ |
695 | + /* cctk_parameters->At23_bound_speed = 0.0; */ |
696 | + /* cctk_parameters->At33_bound_limit = 0.0; */ |
697 | + /* cctk_parameters->At33_bound_scalar = 0.0; */ |
698 | + /* cctk_parameters->At33_bound_speed = 0.0; */ |
699 | + /* cctk_parameters->B1_bound_limit = 0.0; */ |
700 | + /* cctk_parameters->B1_bound_scalar = 0.0; */ |
701 | + /* cctk_parameters->B1_bound_speed = 0.0; */ |
702 | + /* cctk_parameters->B2_bound_limit = 0.0; */ |
703 | + /* cctk_parameters->B2_bound_scalar = 0.0; */ |
704 | + /* cctk_parameters->B2_bound_speed = 0.0; */ |
705 | + /* cctk_parameters->B3_bound_limit = 0.0; */ |
706 | + /* cctk_parameters->B3_bound_scalar = 0.0; */ |
707 | + /* cctk_parameters->B3_bound_speed = 0.0; */ |
708 | + /* cctk_parameters->beta1_bound_limit = 0.0; */ |
709 | + /* cctk_parameters->beta1_bound_scalar = 0.0; */ |
710 | + /* cctk_parameters->beta1_bound_speed = 0.0; */ |
711 | + /* cctk_parameters->beta2_bound_limit = 0.0; */ |
712 | + /* cctk_parameters->beta2_bound_scalar = 0.0; */ |
713 | + /* cctk_parameters->beta2_bound_speed = 0.0; */ |
714 | + /* cctk_parameters->beta3_bound_limit = 0.0; */ |
715 | + /* cctk_parameters->beta3_bound_scalar = 0.0; */ |
716 | + /* cctk_parameters->beta3_bound_speed = 0.0; */ |
717 | + /* cctk_parameters->BetaDriver = 1.0; */ |
718 | + /* cctk_parameters->EpsDiss = 0.2; */ |
719 | + /* cctk_parameters->gt11_bound_limit = 0.0; */ |
720 | + /* cctk_parameters->gt11_bound_scalar = 0.0; */ |
721 | + /* cctk_parameters->gt11_bound_speed = 0.0; */ |
722 | + /* cctk_parameters->gt12_bound_limit = 0.0; */ |
723 | + /* cctk_parameters->gt12_bound_scalar = 0.0; */ |
724 | + /* cctk_parameters->gt12_bound_speed = 0.0; */ |
725 | + /* cctk_parameters->gt13_bound_limit = 0.0; */ |
726 | + /* cctk_parameters->gt13_bound_scalar = 0.0; */ |
727 | + /* cctk_parameters->gt13_bound_speed = 0.0; */ |
728 | + /* cctk_parameters->gt22_bound_limit = 0.0; */ |
729 | + /* cctk_parameters->gt22_bound_scalar = 0.0; */ |
730 | + /* cctk_parameters->gt22_bound_speed = 0.0; */ |
731 | + /* cctk_parameters->gt23_bound_limit = 0.0; */ |
732 | + /* cctk_parameters->gt23_bound_scalar = 0.0; */ |
733 | + /* cctk_parameters->gt23_bound_speed = 0.0; */ |
734 | + /* cctk_parameters->gt33_bound_limit = 0.0; */ |
735 | + /* cctk_parameters->gt33_bound_scalar = 0.0; */ |
736 | + /* cctk_parameters->gt33_bound_speed = 0.0; */ |
737 | + /* cctk_parameters->harmonicF = 2.0; */ |
738 | + /* cctk_parameters->LapseACoeff = 1.0; */ |
739 | + /* cctk_parameters->LapseAdvectionCoeff = 1.0; */ |
740 | + /* cctk_parameters->MinimumLapse = 0.0; */ |
741 | + /* cctk_parameters->ML_curv_bound_limit = 0.0; */ |
742 | + /* cctk_parameters->ML_curv_bound_scalar = 0.0; */ |
743 | + /* cctk_parameters->ML_curv_bound_speed = 0.0; */ |
744 | + /* cctk_parameters->ML_dtlapse_bound_limit = 0.0; */ |
745 | + /* cctk_parameters->ML_dtlapse_bound_scalar = 0.0; */ |
746 | + /* cctk_parameters->ML_dtlapse_bound_speed = 0.0; */ |
747 | + /* cctk_parameters->ML_dtshift_bound_limit = 0.0; */ |
748 | + /* cctk_parameters->ML_dtshift_bound_scalar = 0.0; */ |
749 | + /* cctk_parameters->ML_dtshift_bound_speed = 0.0; */ |
750 | + /* cctk_parameters->ML_Gamma_bound_limit = 0.0; */ |
751 | + /* cctk_parameters->ML_Gamma_bound_scalar = 0.0; */ |
752 | + /* cctk_parameters->ML_Gamma_bound_speed = 0.0; */ |
753 | + /* cctk_parameters->ML_lapse_bound_limit = 0.0; */ |
754 | + /* cctk_parameters->ML_lapse_bound_scalar = 0.0; */ |
755 | + /* cctk_parameters->ML_lapse_bound_speed = 0.0; */ |
756 | + /* cctk_parameters->ML_log_confac_bound_limit = 0.0; */ |
757 | + /* cctk_parameters->ML_log_confac_bound_scalar = 0.0; */ |
758 | + /* cctk_parameters->ML_log_confac_bound_speed = 0.0; */ |
759 | + /* cctk_parameters->ML_metric_bound_limit = 0.0; */ |
760 | + /* cctk_parameters->ML_metric_bound_scalar = 0.0; */ |
761 | + /* cctk_parameters->ML_metric_bound_speed = 0.0; */ |
762 | + /* cctk_parameters->ML_shift_bound_limit = 0.0; */ |
763 | + /* cctk_parameters->ML_shift_bound_scalar = 0.0; */ |
764 | + /* cctk_parameters->ML_shift_bound_speed = 0.0; */ |
765 | + /* cctk_parameters->ML_trace_curv_bound_limit = 0.0; */ |
766 | + /* cctk_parameters->ML_trace_curv_bound_scalar = 0.0; */ |
767 | + /* cctk_parameters->ML_trace_curv_bound_speed = 0.0; */ |
768 | + /* cctk_parameters->phi_bound_limit = 0.0; */ |
769 | + /* cctk_parameters->phi_bound_scalar = 0.0; */ |
770 | + /* cctk_parameters->phi_bound_speed = 0.0; */ |
771 | + /* cctk_parameters->ShiftAdvectionCoeff = 1.0; */ |
772 | + /* cctk_parameters->ShiftBCoeff = 1.0; */ |
773 | + /* cctk_parameters->ShiftGammaCoeff = 0.75; */ |
774 | + /* cctk_parameters->SpatialBetaDriverRadius = 1.0e+10; */ |
775 | + /* cctk_parameters->SpatialShiftGammaCoeffRadius = 1.0e+10; */ |
776 | + /* cctk_parameters->trK_bound_limit = 0.0; */ |
777 | + /* cctk_parameters->trK_bound_scalar = 0.0; */ |
778 | + /* cctk_parameters->trK_bound_speed = 0.0; */ |
779 | + /* cctk_parameters->Xt1_bound_limit = 0.0; */ |
780 | + /* cctk_parameters->Xt1_bound_scalar = 0.0; */ |
781 | + /* cctk_parameters->Xt1_bound_speed = 0.0; */ |
782 | + /* cctk_parameters->Xt2_bound_limit = 0.0; */ |
783 | + /* cctk_parameters->Xt2_bound_scalar = 0.0; */ |
784 | + /* cctk_parameters->Xt2_bound_speed = 0.0; */ |
785 | + /* cctk_parameters->Xt3_bound_limit = 0.0; */ |
786 | + /* cctk_parameters->Xt3_bound_scalar = 0.0; */ |
787 | + /* cctk_parameters->Xt3_bound_speed = 0.0; */ |
788 | + /* cctk_parameters->conformalMethod = 0; */ |
789 | + /* cctk_parameters->fdOrder = 4; */ |
790 | + /* cctk_parameters->harmonicN = 1; */ |
791 | + /* cctk_parameters->harmonicShift = 0; */ |
792 | + /* cctk_parameters->ML_BSSN_CL_Advect_calc_every = 0; */ |
793 | + /* cctk_parameters->ML_BSSN_CL_Advect_calc_offset = 0; */ |
794 | + /* cctk_parameters->ML_BSSN_CL_boundary_calc_every = 0; */ |
795 | + /* cctk_parameters->ML_BSSN_CL_boundary_calc_offset = 0; */ |
796 | + /* cctk_parameters->ML_BSSN_CL_constraints1_calc_every = 0; */ |
797 | + /* cctk_parameters->ML_BSSN_CL_constraints1_calc_offset = 0; */ |
798 | + /* cctk_parameters->ML_BSSN_CL_constraints2_calc_every = 0; */ |
799 | + /* cctk_parameters->ML_BSSN_CL_constraints2_calc_offset = 0; */ |
800 | + /* cctk_parameters->ML_BSSN_CL_convertFromADMBase_calc_every = 0; */ |
801 | + /* cctk_parameters->ML_BSSN_CL_convertFromADMBase_calc_offset = 0; */ |
802 | + /* cctk_parameters->ML_BSSN_CL_convertFromADMBaseGamma_calc_every = 0; */ |
803 | + /* cctk_parameters->ML_BSSN_CL_convertFromADMBaseGamma_calc_offset = 0; */ |
804 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBase_calc_every = 0; */ |
805 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBase_calc_offset = 0; */ |
806 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_every = 0; */ |
807 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_offset = 0; */ |
808 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_every = 0; */ |
809 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_offset = 0; */ |
810 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_every = 0; */ |
811 | + /* cctk_parameters->ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_offset = 0; */ |
812 | + /* cctk_parameters->ML_BSSN_CL_Dissipation_calc_every = 0; */ |
813 | + /* cctk_parameters->ML_BSSN_CL_Dissipation_calc_offset = 0; */ |
814 | + /* cctk_parameters->ML_BSSN_CL_enforce_calc_every = 0; */ |
815 | + /* cctk_parameters->ML_BSSN_CL_enforce_calc_offset = 0; */ |
816 | + /* cctk_parameters->ML_BSSN_CL_InitGamma_calc_every = 0; */ |
817 | + /* cctk_parameters->ML_BSSN_CL_InitGamma_calc_offset = 0; */ |
818 | + /* cctk_parameters->ML_BSSN_CL_InitRHS_calc_every = 0; */ |
819 | + /* cctk_parameters->ML_BSSN_CL_InitRHS_calc_offset = 0; */ |
820 | + /* cctk_parameters->ML_BSSN_CL_MaxNumArrayEvolvedVars = 0; */ |
821 | + /* cctk_parameters->ML_BSSN_CL_MaxNumEvolvedVars = 0; */ |
822 | + /* cctk_parameters->ML_BSSN_CL_Minkowski_calc_every = 0; */ |
823 | + /* cctk_parameters->ML_BSSN_CL_Minkowski_calc_offset = 0; */ |
824 | + /* cctk_parameters->ML_BSSN_CL_RHS1_calc_every = 0; */ |
825 | + /* cctk_parameters->ML_BSSN_CL_RHS1_calc_offset = 0; */ |
826 | + /* cctk_parameters->ML_BSSN_CL_RHS2_calc_every = 0; */ |
827 | + /* cctk_parameters->ML_BSSN_CL_RHS2_calc_offset = 0; */ |
828 | + /* cctk_parameters->ML_BSSN_CL_RHSStaticBoundary_calc_every = 0; */ |
829 | + /* cctk_parameters->ML_BSSN_CL_RHSStaticBoundary_calc_offset = 0; */ |
830 | + /* cctk_parameters->other_timelevels = 1; */ |
831 | + /* cctk_parameters->rhs_timelevels = 1; */ |
832 | + /* cctk_parameters->ShiftAlphaPower = 0; */ |
833 | + /* cctk_parameters->timelevels = 3; */ |
834 | + /* cctk_parameters->verbose = 0; */ |
835 | + |
836 | + allocate(cctkGH, &cctk_arguments->x, 10.0); |
837 | + allocate(cctkGH, &cctk_arguments->y, 11.0); |
838 | + allocate(cctkGH, &cctk_arguments->z, 12.0); |
839 | + allocate(cctkGH, &cctk_arguments->r, 13.0); |
840 | + allocate(cctkGH, &cctk_arguments->At11, 0.0); |
841 | + allocate(cctkGH, &cctk_arguments->At11_p, 0.0); |
842 | + allocate(cctkGH, &cctk_arguments->At11_p_p, 0.0); |
843 | + allocate(cctkGH, &cctk_arguments->At12, 0.0); |
844 | + allocate(cctkGH, &cctk_arguments->At12_p, 0.0); |
845 | + allocate(cctkGH, &cctk_arguments->At12_p_p, 0.0); |
846 | + allocate(cctkGH, &cctk_arguments->At13, 0.0); |
847 | + allocate(cctkGH, &cctk_arguments->At13_p, 0.0); |
848 | + allocate(cctkGH, &cctk_arguments->At13_p_p, 0.0); |
849 | + allocate(cctkGH, &cctk_arguments->At22, 0.0); |
850 | + allocate(cctkGH, &cctk_arguments->At22_p, 0.0); |
851 | + allocate(cctkGH, &cctk_arguments->At22_p_p, 0.0); |
852 | + allocate(cctkGH, &cctk_arguments->At23, 0.0); |
853 | + allocate(cctkGH, &cctk_arguments->At23_p, 0.0); |
854 | + allocate(cctkGH, &cctk_arguments->At23_p_p, 0.0); |
855 | + allocate(cctkGH, &cctk_arguments->At33, 0.0); |
856 | + allocate(cctkGH, &cctk_arguments->At33_p, 0.0); |
857 | + allocate(cctkGH, &cctk_arguments->At33_p_p, 0.0); |
858 | + allocate(cctkGH, &cctk_arguments->A, 0.0); |
859 | + allocate(cctkGH, &cctk_arguments->A_p, 0.0); |
860 | + allocate(cctkGH, &cctk_arguments->A_p_p, 0.0); |
861 | + allocate(cctkGH, &cctk_arguments->Arhs, -1.0); |
862 | + allocate(cctkGH, &cctk_arguments->B1, 0.0); |
863 | + allocate(cctkGH, &cctk_arguments->B1_p, 0.0); |
864 | + allocate(cctkGH, &cctk_arguments->B1_p_p, 0.0); |
865 | + allocate(cctkGH, &cctk_arguments->B2, 0.0); |
866 | + allocate(cctkGH, &cctk_arguments->B2_p, 0.0); |
867 | + allocate(cctkGH, &cctk_arguments->B2_p_p, 0.0); |
868 | + allocate(cctkGH, &cctk_arguments->B3, 0.0); |
869 | + allocate(cctkGH, &cctk_arguments->B3_p, 0.0); |
870 | + allocate(cctkGH, &cctk_arguments->B3_p_p, 0.0); |
871 | + allocate(cctkGH, &cctk_arguments->B1rhs, -1.0); |
872 | + allocate(cctkGH, &cctk_arguments->B2rhs, -1.0); |
873 | + allocate(cctkGH, &cctk_arguments->B3rhs, -1.0); |
874 | + allocate(cctkGH, &cctk_arguments->Xt1, 0.0); |
875 | + allocate(cctkGH, &cctk_arguments->Xt1_p, 0.0); |
876 | + allocate(cctkGH, &cctk_arguments->Xt1_p_p, 0.0); |
877 | + allocate(cctkGH, &cctk_arguments->Xt2, 0.0); |
878 | + allocate(cctkGH, &cctk_arguments->Xt2_p, 0.0); |
879 | + allocate(cctkGH, &cctk_arguments->Xt2_p_p, 0.0); |
880 | + allocate(cctkGH, &cctk_arguments->Xt3, 0.0); |
881 | + allocate(cctkGH, &cctk_arguments->Xt3_p, 0.0); |
882 | + allocate(cctkGH, &cctk_arguments->Xt3_p_p, 0.0); |
883 | + allocate(cctkGH, &cctk_arguments->Xt1rhs, -1.0); |
884 | + allocate(cctkGH, &cctk_arguments->Xt2rhs, -1.0); |
885 | + allocate(cctkGH, &cctk_arguments->Xt3rhs, -1.0); |
886 | + allocate(cctkGH, &cctk_arguments->alpha, 1.0); |
887 | + allocate(cctkGH, &cctk_arguments->alpha_p, 1.0); |
888 | + allocate(cctkGH, &cctk_arguments->alpha_p_p, 1.0); |
889 | + allocate(cctkGH, &cctk_arguments->alpharhs, -1.0); |
890 | + allocate(cctkGH, &cctk_arguments->phi, 0.0); |
891 | + allocate(cctkGH, &cctk_arguments->phi_p, 0.0); |
892 | + allocate(cctkGH, &cctk_arguments->phi_p_p, 0.0); |
893 | + allocate(cctkGH, &cctk_arguments->phirhs, -1.0); |
894 | + allocate(cctkGH, &cctk_arguments->gt11, 1.0); |
895 | + allocate(cctkGH, &cctk_arguments->gt11_p, 1.0); |
896 | + allocate(cctkGH, &cctk_arguments->gt11_p_p, 1.0); |
897 | + allocate(cctkGH, &cctk_arguments->gt12, 0.0); |
898 | + allocate(cctkGH, &cctk_arguments->gt12_p, 0.0); |
899 | + allocate(cctkGH, &cctk_arguments->gt12_p_p, 0.0); |
900 | + allocate(cctkGH, &cctk_arguments->gt13, 0.0); |
901 | + allocate(cctkGH, &cctk_arguments->gt13_p, 0.0); |
902 | + allocate(cctkGH, &cctk_arguments->gt13_p_p, 0.0); |
903 | + allocate(cctkGH, &cctk_arguments->gt22, 1.0); |
904 | + allocate(cctkGH, &cctk_arguments->gt22_p, 1.0); |
905 | + allocate(cctkGH, &cctk_arguments->gt22_p_p, 1.0); |
906 | + allocate(cctkGH, &cctk_arguments->gt23, 0.0); |
907 | + allocate(cctkGH, &cctk_arguments->gt23_p, 0.0); |
908 | + allocate(cctkGH, &cctk_arguments->gt23_p_p, 0.0); |
909 | + allocate(cctkGH, &cctk_arguments->gt33, 1.0); |
910 | + allocate(cctkGH, &cctk_arguments->gt33_p, 1.0); |
911 | + allocate(cctkGH, &cctk_arguments->gt33_p_p, 1.0); |
912 | + allocate(cctkGH, &cctk_arguments->gt11rhs, -1.0); |
913 | + allocate(cctkGH, &cctk_arguments->gt12rhs, -1.0); |
914 | + allocate(cctkGH, &cctk_arguments->gt13rhs, -1.0); |
915 | + allocate(cctkGH, &cctk_arguments->gt22rhs, -1.0); |
916 | + allocate(cctkGH, &cctk_arguments->gt23rhs, -1.0); |
917 | + allocate(cctkGH, &cctk_arguments->gt33rhs, -1.0); |
918 | + allocate(cctkGH, &cctk_arguments->beta1, 0.0); |
919 | + allocate(cctkGH, &cctk_arguments->beta1_p, 0.0); |
920 | + allocate(cctkGH, &cctk_arguments->beta1_p_p, 0.0); |
921 | + allocate(cctkGH, &cctk_arguments->beta2, 0.0); |
922 | + allocate(cctkGH, &cctk_arguments->beta2_p, 0.0); |
923 | + allocate(cctkGH, &cctk_arguments->beta2_p_p, 0.0); |
924 | + allocate(cctkGH, &cctk_arguments->beta3, 0.0); |
925 | + allocate(cctkGH, &cctk_arguments->beta3_p, 0.0); |
926 | + allocate(cctkGH, &cctk_arguments->beta3_p_p, 0.0); |
927 | + allocate(cctkGH, &cctk_arguments->beta1rhs, -1.0); |
928 | + allocate(cctkGH, &cctk_arguments->beta2rhs, -1.0); |
929 | + allocate(cctkGH, &cctk_arguments->beta3rhs, -1.0); |
930 | + allocate(cctkGH, &cctk_arguments->trK, 0.0); |
931 | + allocate(cctkGH, &cctk_arguments->trK_p, 0.0); |
932 | + allocate(cctkGH, &cctk_arguments->trK_p_p, 0.0); |
933 | + allocate(cctkGH, &cctk_arguments->trKrhs, -1.0); |
934 | + allocate(cctkGH, &cctk_arguments->At11rhs, -1.0); |
935 | + allocate(cctkGH, &cctk_arguments->At12rhs, -1.0); |
936 | + allocate(cctkGH, &cctk_arguments->At13rhs, -1.0); |
937 | + allocate(cctkGH, &cctk_arguments->At22rhs, -1.0); |
938 | + allocate(cctkGH, &cctk_arguments->At23rhs, -1.0); |
939 | + allocate(cctkGH, &cctk_arguments->At33rhs, -1.0); |
940 | +} |
941 | + |
942 | + |
943 | + |
944 | +static void set_arg(cl_kernel kernel, int arg, cl_mem const* mem) |
945 | +{ |
946 | + int ierr = clSetKernelArg(kernel, arg, sizeof(cl_mem), mem); |
947 | + assert(!ierr); |
948 | +} |
949 | + |
950 | + |
951 | + |
952 | +int exec_ML_BSSN_CL_RHS1(char const* const program_source, |
953 | + cGH const* const cctkGH, |
954 | + cctk_parameters_t const* const cctk_parameters, |
955 | + cctk_arguments_t const* const cctk_arguments) |
956 | +{ |
957 | + static int initialised = 0; |
958 | + static cl_program program; |
959 | + static cl_kernel kernel; |
960 | + static cl_mem mem_cctkGH; |
961 | + static cl_mem mem_cctk_parameters; |
962 | + |
963 | + int ierr; |
964 | + |
965 | + if (!initialised) { |
966 | + initialised = 1; |
967 | + |
968 | + program = |
969 | + clCreateProgramWithSource(context, 1, (const char**)&program_source, |
970 | + NULL, NULL); |
971 | + assert(program); |
972 | + |
973 | + char const* const options = |
974 | + "-DVECTORISE_ALIGNED_ARRAYS=" STR(VECTORISE_ALIGNED_ARRAYS) " " |
975 | + "-DVECTOR_SIZE_I=" STR(VECTOR_SIZE_I) " " |
976 | + "-DVECTOR_SIZE_J=" STR(VECTOR_SIZE_J) " " |
977 | + "-DVECTOR_SIZE_K=" STR(VECTOR_SIZE_K) " " |
978 | + "-DUNROLL_SIZE_I=" STR(UNROLL_SIZE_I) " " |
979 | + "-DUNROLL_SIZE_J=" STR(UNROLL_SIZE_J) " " |
980 | + "-DUNROLL_SIZE_K=" STR(UNROLL_SIZE_K) " " |
981 | + "-DGROUP_SIZE_I=" STR(GROUP_SIZE_I) " " |
982 | + "-DGROUP_SIZE_J=" STR(GROUP_SIZE_J) " " |
983 | + "-DGROUP_SIZE_K=" STR(GROUP_SIZE_K) " " |
984 | + "-DTILE_SIZE_I=" STR(TILE_SIZE_I) " " |
985 | + "-DTILE_SIZE_J=" STR(TILE_SIZE_J) " " |
986 | + "-DTILE_SIZE_K=" STR(TILE_SIZE_K) " "; |
987 | + |
988 | + ierr = clBuildProgram(program, 0, NULL, options, NULL, NULL); |
989 | + if (ierr) { |
990 | + size_t log_size; |
991 | + ierr = clGetProgramBuildInfo(program, device_id, |
992 | + CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size); |
993 | + assert(!ierr); |
994 | + char build_log[log_size]; |
995 | + ierr = clGetProgramBuildInfo(program, device_id, |
996 | + CL_PROGRAM_BUILD_LOG, |
997 | + log_size, build_log, NULL); |
998 | + assert(!ierr); |
999 | + printf("Build log:\n" |
1000 | + "********************************************************************************\n" |
1001 | + "%s\n" |
1002 | + "********************************************************************************\n", build_log); |
1003 | + assert(0); |
1004 | + } |
1005 | + |
1006 | + kernel = clCreateKernel(program, "ML_BSSN_CL_RHS1", NULL); |
1007 | + assert(kernel); |
1008 | + |
1009 | + mem_cctkGH = |
1010 | + clCreateBuffer(context, CL_MEM_COPY_HOST_PTR | CL_MEM_READ_ONLY, |
1011 | + sizeof *cctkGH, cctkGH, NULL); |
1012 | + assert(mem_cctkGH); |
1013 | + |
1014 | + mem_cctk_parameters = |
1015 | + clCreateBuffer(context, CL_MEM_COPY_HOST_PTR | CL_MEM_READ_ONLY, |
1016 | + sizeof *cctk_parameters, cctk_parameters, NULL); |
1017 | + assert(mem_cctk_parameters); |
1018 | + } |
1019 | + |
1020 | + int nargs = 0; |
1021 | + set_arg(kernel, nargs++, &mem_cctkGH); |
1022 | + set_arg(kernel, nargs++, &mem_cctk_parameters); |
1023 | + set_arg(kernel, nargs++, &cctk_arguments->x.mem); |
1024 | + set_arg(kernel, nargs++, &cctk_arguments->y.mem); |
1025 | + set_arg(kernel, nargs++, &cctk_arguments->z.mem); |
1026 | + set_arg(kernel, nargs++, &cctk_arguments->r.mem); |
1027 | + set_arg(kernel, nargs++, &cctk_arguments->At11.mem); |
1028 | + set_arg(kernel, nargs++, &cctk_arguments->At11_p.mem); |
1029 | + set_arg(kernel, nargs++, &cctk_arguments->At11_p_p.mem); |
1030 | + set_arg(kernel, nargs++, &cctk_arguments->At12.mem); |
1031 | + set_arg(kernel, nargs++, &cctk_arguments->At12_p.mem); |
1032 | + set_arg(kernel, nargs++, &cctk_arguments->At12_p_p.mem); |
1033 | + set_arg(kernel, nargs++, &cctk_arguments->At13.mem); |
1034 | + set_arg(kernel, nargs++, &cctk_arguments->At13_p.mem); |
1035 | + set_arg(kernel, nargs++, &cctk_arguments->At13_p_p.mem); |
1036 | + set_arg(kernel, nargs++, &cctk_arguments->At22.mem); |
1037 | + set_arg(kernel, nargs++, &cctk_arguments->At22_p.mem); |
1038 | + set_arg(kernel, nargs++, &cctk_arguments->At22_p_p.mem); |
1039 | + set_arg(kernel, nargs++, &cctk_arguments->At23.mem); |
1040 | + set_arg(kernel, nargs++, &cctk_arguments->At23_p.mem); |
1041 | + set_arg(kernel, nargs++, &cctk_arguments->At23_p_p.mem); |
1042 | + set_arg(kernel, nargs++, &cctk_arguments->At33.mem); |
1043 | + set_arg(kernel, nargs++, &cctk_arguments->At33_p.mem); |
1044 | + set_arg(kernel, nargs++, &cctk_arguments->At33_p_p.mem); |
1045 | + set_arg(kernel, nargs++, &cctk_arguments->A.mem); |
1046 | + set_arg(kernel, nargs++, &cctk_arguments->A_p.mem); |
1047 | + set_arg(kernel, nargs++, &cctk_arguments->A_p_p.mem); |
1048 | + set_arg(kernel, nargs++, &cctk_arguments->Arhs.mem); |
1049 | + set_arg(kernel, nargs++, &cctk_arguments->B1.mem); |
1050 | + set_arg(kernel, nargs++, &cctk_arguments->B1_p.mem); |
1051 | + set_arg(kernel, nargs++, &cctk_arguments->B1_p_p.mem); |
1052 | + set_arg(kernel, nargs++, &cctk_arguments->B2.mem); |
1053 | + set_arg(kernel, nargs++, &cctk_arguments->B2_p.mem); |
1054 | + set_arg(kernel, nargs++, &cctk_arguments->B2_p_p.mem); |
1055 | + set_arg(kernel, nargs++, &cctk_arguments->B3.mem); |
1056 | + set_arg(kernel, nargs++, &cctk_arguments->B3_p.mem); |
1057 | + set_arg(kernel, nargs++, &cctk_arguments->B3_p_p.mem); |
1058 | + set_arg(kernel, nargs++, &cctk_arguments->B1rhs.mem); |
1059 | + set_arg(kernel, nargs++, &cctk_arguments->B2rhs.mem); |
1060 | + set_arg(kernel, nargs++, &cctk_arguments->B3rhs.mem); |
1061 | + set_arg(kernel, nargs++, &cctk_arguments->Xt1.mem); |
1062 | + set_arg(kernel, nargs++, &cctk_arguments->Xt1_p.mem); |
1063 | + set_arg(kernel, nargs++, &cctk_arguments->Xt1_p_p.mem); |
1064 | + set_arg(kernel, nargs++, &cctk_arguments->Xt2.mem); |
1065 | + set_arg(kernel, nargs++, &cctk_arguments->Xt2_p.mem); |
1066 | + set_arg(kernel, nargs++, &cctk_arguments->Xt2_p_p.mem); |
1067 | + set_arg(kernel, nargs++, &cctk_arguments->Xt3.mem); |
1068 | + set_arg(kernel, nargs++, &cctk_arguments->Xt3_p.mem); |
1069 | + set_arg(kernel, nargs++, &cctk_arguments->Xt3_p_p.mem); |
1070 | + set_arg(kernel, nargs++, &cctk_arguments->Xt1rhs.mem); |
1071 | + set_arg(kernel, nargs++, &cctk_arguments->Xt2rhs.mem); |
1072 | + set_arg(kernel, nargs++, &cctk_arguments->Xt3rhs.mem); |
1073 | + set_arg(kernel, nargs++, &cctk_arguments->alpha.mem); |
1074 | + set_arg(kernel, nargs++, &cctk_arguments->alpha_p.mem); |
1075 | + set_arg(kernel, nargs++, &cctk_arguments->alpha_p_p.mem); |
1076 | + set_arg(kernel, nargs++, &cctk_arguments->alpharhs.mem); |
1077 | + set_arg(kernel, nargs++, &cctk_arguments->phi.mem); |
1078 | + set_arg(kernel, nargs++, &cctk_arguments->phi_p.mem); |
1079 | + set_arg(kernel, nargs++, &cctk_arguments->phi_p_p.mem); |
1080 | + set_arg(kernel, nargs++, &cctk_arguments->phirhs.mem); |
1081 | + set_arg(kernel, nargs++, &cctk_arguments->gt11.mem); |
1082 | + set_arg(kernel, nargs++, &cctk_arguments->gt11_p.mem); |
1083 | + set_arg(kernel, nargs++, &cctk_arguments->gt11_p_p.mem); |
1084 | + set_arg(kernel, nargs++, &cctk_arguments->gt12.mem); |
1085 | + set_arg(kernel, nargs++, &cctk_arguments->gt12_p.mem); |
1086 | + set_arg(kernel, nargs++, &cctk_arguments->gt12_p_p.mem); |
1087 | + set_arg(kernel, nargs++, &cctk_arguments->gt13.mem); |
1088 | + set_arg(kernel, nargs++, &cctk_arguments->gt13_p.mem); |
1089 | + set_arg(kernel, nargs++, &cctk_arguments->gt13_p_p.mem); |
1090 | + set_arg(kernel, nargs++, &cctk_arguments->gt22.mem); |
1091 | + set_arg(kernel, nargs++, &cctk_arguments->gt22_p.mem); |
1092 | + set_arg(kernel, nargs++, &cctk_arguments->gt22_p_p.mem); |
1093 | + set_arg(kernel, nargs++, &cctk_arguments->gt23.mem); |
1094 | + set_arg(kernel, nargs++, &cctk_arguments->gt23_p.mem); |
1095 | + set_arg(kernel, nargs++, &cctk_arguments->gt23_p_p.mem); |
1096 | + set_arg(kernel, nargs++, &cctk_arguments->gt33.mem); |
1097 | + set_arg(kernel, nargs++, &cctk_arguments->gt33_p.mem); |
1098 | + set_arg(kernel, nargs++, &cctk_arguments->gt33_p_p.mem); |
1099 | + set_arg(kernel, nargs++, &cctk_arguments->gt11rhs.mem); |
1100 | + set_arg(kernel, nargs++, &cctk_arguments->gt12rhs.mem); |
1101 | + set_arg(kernel, nargs++, &cctk_arguments->gt13rhs.mem); |
1102 | + set_arg(kernel, nargs++, &cctk_arguments->gt22rhs.mem); |
1103 | + set_arg(kernel, nargs++, &cctk_arguments->gt23rhs.mem); |
1104 | + set_arg(kernel, nargs++, &cctk_arguments->gt33rhs.mem); |
1105 | + set_arg(kernel, nargs++, &cctk_arguments->beta1.mem); |
1106 | + set_arg(kernel, nargs++, &cctk_arguments->beta1_p.mem); |
1107 | + set_arg(kernel, nargs++, &cctk_arguments->beta1_p_p.mem); |
1108 | + set_arg(kernel, nargs++, &cctk_arguments->beta2.mem); |
1109 | + set_arg(kernel, nargs++, &cctk_arguments->beta2_p.mem); |
1110 | + set_arg(kernel, nargs++, &cctk_arguments->beta2_p_p.mem); |
1111 | + set_arg(kernel, nargs++, &cctk_arguments->beta3.mem); |
1112 | + set_arg(kernel, nargs++, &cctk_arguments->beta3_p.mem); |
1113 | + set_arg(kernel, nargs++, &cctk_arguments->beta3_p_p.mem); |
1114 | + set_arg(kernel, nargs++, &cctk_arguments->beta1rhs.mem); |
1115 | + set_arg(kernel, nargs++, &cctk_arguments->beta2rhs.mem); |
1116 | + set_arg(kernel, nargs++, &cctk_arguments->beta3rhs.mem); |
1117 | + set_arg(kernel, nargs++, &cctk_arguments->trK.mem); |
1118 | + set_arg(kernel, nargs++, &cctk_arguments->trK_p.mem); |
1119 | + set_arg(kernel, nargs++, &cctk_arguments->trK_p_p.mem); |
1120 | + set_arg(kernel, nargs++, &cctk_arguments->trKrhs.mem); |
1121 | + |
1122 | + size_t const local_work_size[3] = |
1123 | + { GROUP_SIZE_I, GROUP_SIZE_J, GROUP_SIZE_K }; |
1124 | + size_t const global_work_size[3] = |
1125 | + { |
1126 | + divup(cctkGH->lmax[0] - cctkGH->lmin[0], |
1127 | + VECTOR_SIZE_I * UNROLL_SIZE_I * GROUP_SIZE_I * TILE_SIZE_I) * |
1128 | + GROUP_SIZE_I, |
1129 | + divup(cctkGH->lmax[1] - cctkGH->lmin[1], |
1130 | + VECTOR_SIZE_J * UNROLL_SIZE_J * GROUP_SIZE_J * TILE_SIZE_J) * |
1131 | + GROUP_SIZE_J, |
1132 | + divup(cctkGH->lmax[2] - cctkGH->lmin[2], |
1133 | + VECTOR_SIZE_K * UNROLL_SIZE_K * GROUP_SIZE_K * TILE_SIZE_K) * |
1134 | + GROUP_SIZE_K, |
1135 | + }; |
1136 | + { |
1137 | + static int did_print = 0; |
1138 | + if (!did_print) { |
1139 | + did_print = 1; |
1140 | + printf("Global work group size: %4d %4d %4d\n", |
1141 | + (int)global_work_size[0], |
1142 | + (int)global_work_size[1], |
1143 | + (int)global_work_size[2]); |
1144 | + printf("Local work group size: %4d %4d %4d\n", |
1145 | + (int)local_work_size[0], |
1146 | + (int)local_work_size[1], |
1147 | + (int)local_work_size[2]); |
1148 | + } |
1149 | + } |
1150 | + |
1151 | + ierr = clEnqueueNDRangeKernel(cmd_queue, kernel, dim, |
1152 | + NULL, global_work_size, local_work_size, |
1153 | + 0, NULL, NULL); |
1154 | + assert(!ierr); |
1155 | + |
1156 | + ierr = clFinish(cmd_queue); |
1157 | + assert(!ierr); |
1158 | + |
1159 | + return 0; |
1160 | +} |
1161 | + |
1162 | + |
1163 | + |
1164 | +int exec_ML_BSSN_CL_RHS2(char const* const program_source, |
1165 | + cGH const* const cctkGH, |
1166 | + cctk_parameters_t const* const cctk_parameters, |
1167 | + cctk_arguments_t const* const cctk_arguments) |
1168 | +{ |
1169 | + static int initialised = 0; |
1170 | + static cl_program program; |
1171 | + static cl_kernel kernel; |
1172 | + static cl_mem mem_cctkGH; |
1173 | + static cl_mem mem_cctk_parameters; |
1174 | + |
1175 | + int ierr; |
1176 | + |
1177 | + if (!initialised) { |
1178 | + initialised = 1; |
1179 | + |
1180 | + program = |
1181 | + clCreateProgramWithSource(context, 1, (const char**)&program_source, |
1182 | + NULL, NULL); |
1183 | + assert(program); |
1184 | + |
1185 | + char const* const options = |
1186 | + "-DVECTORISE_ALIGNED_ARRAYS=" STR(VECTORISE_ALIGNED_ARRAYS) " " |
1187 | + "-DVECTOR_SIZE_I=" STR(VECTOR_SIZE_I) " " |
1188 | + "-DVECTOR_SIZE_J=" STR(VECTOR_SIZE_J) " " |
1189 | + "-DVECTOR_SIZE_K=" STR(VECTOR_SIZE_K) " " |
1190 | + "-DUNROLL_SIZE_I=" STR(UNROLL_SIZE_I) " " |
1191 | + "-DUNROLL_SIZE_J=" STR(UNROLL_SIZE_J) " " |
1192 | + "-DUNROLL_SIZE_K=" STR(UNROLL_SIZE_K) " " |
1193 | + "-DGROUP_SIZE_I=" STR(GROUP_SIZE_I) " " |
1194 | + "-DGROUP_SIZE_J=" STR(GROUP_SIZE_J) " " |
1195 | + "-DGROUP_SIZE_K=" STR(GROUP_SIZE_K) " " |
1196 | + "-DTILE_SIZE_I=" STR(TILE_SIZE_I) " " |
1197 | + "-DTILE_SIZE_J=" STR(TILE_SIZE_J) " " |
1198 | + "-DTILE_SIZE_K=" STR(TILE_SIZE_K) " "; |
1199 | + |
1200 | + ierr = clBuildProgram(program, 0, NULL, options, NULL, NULL); |
1201 | + assert(!ierr); |
1202 | + |
1203 | + kernel = clCreateKernel(program, "ML_BSSN_CL_RHS2", NULL); |
1204 | + assert(kernel); |
1205 | + |
1206 | + mem_cctkGH = |
1207 | + clCreateBuffer(context, CL_MEM_COPY_HOST_PTR | CL_MEM_READ_ONLY, |
1208 | + sizeof *cctkGH, cctkGH, NULL); |
1209 | + assert(mem_cctkGH); |
1210 | + |
1211 | + mem_cctk_parameters = |
1212 | + clCreateBuffer(context, CL_MEM_COPY_HOST_PTR | CL_MEM_READ_ONLY, |
1213 | + sizeof *cctk_parameters, cctk_parameters, NULL); |
1214 | + assert(mem_cctk_parameters); |
1215 | + } |
1216 | + |
1217 | + int nargs = 0; |
1218 | + set_arg(kernel, nargs++, &mem_cctkGH); |
1219 | + set_arg(kernel, nargs++, &mem_cctk_parameters); |
1220 | + set_arg(kernel, nargs++, &cctk_arguments->At11.mem); |
1221 | + set_arg(kernel, nargs++, &cctk_arguments->At11_p.mem); |
1222 | + set_arg(kernel, nargs++, &cctk_arguments->At11_p_p.mem); |
1223 | + set_arg(kernel, nargs++, &cctk_arguments->At12.mem); |
1224 | + set_arg(kernel, nargs++, &cctk_arguments->At12_p.mem); |
1225 | + set_arg(kernel, nargs++, &cctk_arguments->At12_p_p.mem); |
1226 | + set_arg(kernel, nargs++, &cctk_arguments->At13.mem); |
1227 | + set_arg(kernel, nargs++, &cctk_arguments->At13_p.mem); |
1228 | + set_arg(kernel, nargs++, &cctk_arguments->At13_p_p.mem); |
1229 | + set_arg(kernel, nargs++, &cctk_arguments->At22.mem); |
1230 | + set_arg(kernel, nargs++, &cctk_arguments->At22_p.mem); |
1231 | + set_arg(kernel, nargs++, &cctk_arguments->At22_p_p.mem); |
1232 | + set_arg(kernel, nargs++, &cctk_arguments->At23.mem); |
1233 | + set_arg(kernel, nargs++, &cctk_arguments->At23_p.mem); |
1234 | + set_arg(kernel, nargs++, &cctk_arguments->At23_p_p.mem); |
1235 | + set_arg(kernel, nargs++, &cctk_arguments->At33.mem); |
1236 | + set_arg(kernel, nargs++, &cctk_arguments->At33_p.mem); |
1237 | + set_arg(kernel, nargs++, &cctk_arguments->At33_p_p.mem); |
1238 | + set_arg(kernel, nargs++, &cctk_arguments->At11rhs.mem); |
1239 | + set_arg(kernel, nargs++, &cctk_arguments->At12rhs.mem); |
1240 | + set_arg(kernel, nargs++, &cctk_arguments->At13rhs.mem); |
1241 | + set_arg(kernel, nargs++, &cctk_arguments->At22rhs.mem); |
1242 | + set_arg(kernel, nargs++, &cctk_arguments->At23rhs.mem); |
1243 | + set_arg(kernel, nargs++, &cctk_arguments->At33rhs.mem); |
1244 | + set_arg(kernel, nargs++, &cctk_arguments->Xt1.mem); |
1245 | + set_arg(kernel, nargs++, &cctk_arguments->Xt1_p.mem); |
1246 | + set_arg(kernel, nargs++, &cctk_arguments->Xt1_p_p.mem); |
1247 | + set_arg(kernel, nargs++, &cctk_arguments->Xt2.mem); |
1248 | + set_arg(kernel, nargs++, &cctk_arguments->Xt2_p.mem); |
1249 | + set_arg(kernel, nargs++, &cctk_arguments->Xt2_p_p.mem); |
1250 | + set_arg(kernel, nargs++, &cctk_arguments->Xt3.mem); |
1251 | + set_arg(kernel, nargs++, &cctk_arguments->Xt3_p.mem); |
1252 | + set_arg(kernel, nargs++, &cctk_arguments->Xt3_p_p.mem); |
1253 | + set_arg(kernel, nargs++, &cctk_arguments->alpha.mem); |
1254 | + set_arg(kernel, nargs++, &cctk_arguments->alpha_p.mem); |
1255 | + set_arg(kernel, nargs++, &cctk_arguments->alpha_p_p.mem); |
1256 | + set_arg(kernel, nargs++, &cctk_arguments->phi.mem); |
1257 | + set_arg(kernel, nargs++, &cctk_arguments->phi_p.mem); |
1258 | + set_arg(kernel, nargs++, &cctk_arguments->phi_p_p.mem); |
1259 | + set_arg(kernel, nargs++, &cctk_arguments->gt11.mem); |
1260 | + set_arg(kernel, nargs++, &cctk_arguments->gt11_p.mem); |
1261 | + set_arg(kernel, nargs++, &cctk_arguments->gt11_p_p.mem); |
1262 | + set_arg(kernel, nargs++, &cctk_arguments->gt12.mem); |
1263 | + set_arg(kernel, nargs++, &cctk_arguments->gt12_p.mem); |
1264 | + set_arg(kernel, nargs++, &cctk_arguments->gt12_p_p.mem); |
1265 | + set_arg(kernel, nargs++, &cctk_arguments->gt13.mem); |
1266 | + set_arg(kernel, nargs++, &cctk_arguments->gt13_p.mem); |
1267 | + set_arg(kernel, nargs++, &cctk_arguments->gt13_p_p.mem); |
1268 | + set_arg(kernel, nargs++, &cctk_arguments->gt22.mem); |
1269 | + set_arg(kernel, nargs++, &cctk_arguments->gt22_p.mem); |
1270 | + set_arg(kernel, nargs++, &cctk_arguments->gt22_p_p.mem); |
1271 | + set_arg(kernel, nargs++, &cctk_arguments->gt23.mem); |
1272 | + set_arg(kernel, nargs++, &cctk_arguments->gt23_p.mem); |
1273 | + set_arg(kernel, nargs++, &cctk_arguments->gt23_p_p.mem); |
1274 | + set_arg(kernel, nargs++, &cctk_arguments->gt33.mem); |
1275 | + set_arg(kernel, nargs++, &cctk_arguments->gt33_p.mem); |
1276 | + set_arg(kernel, nargs++, &cctk_arguments->gt33_p_p.mem); |
1277 | + set_arg(kernel, nargs++, &cctk_arguments->beta1.mem); |
1278 | + set_arg(kernel, nargs++, &cctk_arguments->beta1_p.mem); |
1279 | + set_arg(kernel, nargs++, &cctk_arguments->beta1_p_p.mem); |
1280 | + set_arg(kernel, nargs++, &cctk_arguments->beta2.mem); |
1281 | + set_arg(kernel, nargs++, &cctk_arguments->beta2_p.mem); |
1282 | + set_arg(kernel, nargs++, &cctk_arguments->beta2_p_p.mem); |
1283 | + set_arg(kernel, nargs++, &cctk_arguments->beta3.mem); |
1284 | + set_arg(kernel, nargs++, &cctk_arguments->beta3_p.mem); |
1285 | + set_arg(kernel, nargs++, &cctk_arguments->beta3_p_p.mem); |
1286 | + set_arg(kernel, nargs++, &cctk_arguments->trK.mem); |
1287 | + set_arg(kernel, nargs++, &cctk_arguments->trK_p.mem); |
1288 | + set_arg(kernel, nargs++, &cctk_arguments->trK_p_p.mem); |
1289 | + |
1290 | + size_t const global_work_size[3] = |
1291 | + { cctkGH->cctk_ash[0], cctkGH->cctk_ash[1], cctkGH->cctk_ash[2] }; |
1292 | + size_t const local_work_size[3] = |
1293 | + { GROUP_SIZE_I, GROUP_SIZE_J, GROUP_SIZE_K }; |
1294 | + |
1295 | + ierr = clEnqueueNDRangeKernel(cmd_queue, kernel, dim, |
1296 | + NULL, global_work_size, local_work_size, |
1297 | + 0, NULL, NULL); |
1298 | + assert(!ierr); |
1299 | + |
1300 | + ierr = clFinish(cmd_queue); |
1301 | + assert(!ierr); |
1302 | + |
1303 | + return 0; |
1304 | +} |
1305 | + |
1306 | + |
1307 | + |
1308 | +static void check_var(cGH const* const cctkGH, |
1309 | + char const* const name, |
1310 | + ptr_t* const ptr, |
1311 | + CCTK_REAL const val_int, CCTK_REAL const val_bnd) |
1312 | +{ |
1313 | + int const nsize = |
1314 | + cctkGH->cctk_ash[0] * cctkGH->cctk_ash[1] * cctkGH->cctk_ash[2]; |
1315 | + int ierr = clEnqueueReadBuffer |
1316 | + (cmd_queue, ptr->mem, 1, 0, nsize * sizeof(CCTK_REAL), ptr->ptr, |
1317 | + 0, NULL, NULL); |
1318 | + for (int k=0; k<cctkGH->cctk_lsh[2]; ++k) { |
1319 | + for (int j=0; j<cctkGH->cctk_lsh[1]; ++j) { |
1320 | + for (int i=0; i<cctkGH->cctk_lsh[0]; ++i) { |
1321 | + int const is_int = (i>=cctkGH->imin[0] && i<cctkGH->imax[0] && |
1322 | + j>=cctkGH->imin[1] && j<cctkGH->imax[1] && |
1323 | + k>=cctkGH->imin[2] && k<cctkGH->imax[2]); |
1324 | + double const val = is_int ? val_int : val_bnd; |
1325 | + int const ind3d = |
1326 | + i + cctkGH->cctk_ash[0] * (j + cctkGH->cctk_ash[1] * k); |
1327 | + if (! (fabs(ptr->ptr[ind3d] - val) <= 1.0e-15)) { |
1328 | + printf("%s[%d,%d,%d] is:%.17g should:%.17g\n", |
1329 | + name, i,j,k, ptr->ptr[ind3d], val); |
1330 | + } |
1331 | + assert(fabs(ptr->ptr[ind3d] - val) <= 1.0e-15); |
1332 | + } |
1333 | + } |
1334 | + } |
1335 | +} |
1336 | + |
1337 | + |
1338 | + |
1339 | +void check(cGH * const cctkGH, |
1340 | + cctk_parameters_t* const cctk_parameters, |
1341 | + cctk_arguments_t * const cctk_arguments) |
1342 | +{ |
1343 | + check_var(cctkGH, "Arhs", &cctk_arguments->Arhs, 0.0, -1.0); |
1344 | + check_var(cctkGH, "B1rhs", &cctk_arguments->B1rhs, 0.0, -1.0); |
1345 | + check_var(cctkGH, "B2rhs", &cctk_arguments->B2rhs, 0.0, -1.0); |
1346 | + check_var(cctkGH, "B3rhs", &cctk_arguments->B3rhs, 0.0, -1.0); |
1347 | + check_var(cctkGH, "Xt1rhs", &cctk_arguments->Xt1rhs, 0.0, -1.0); |
1348 | + check_var(cctkGH, "Xt2rhs", &cctk_arguments->Xt2rhs, 0.0, -1.0); |
1349 | + check_var(cctkGH, "Xt3rhs", &cctk_arguments->Xt3rhs, 0.0, -1.0); |
1350 | + check_var(cctkGH, "alpharhs", &cctk_arguments->alpharhs, 0.0, -1.0); |
1351 | + check_var(cctkGH, "phirhs", &cctk_arguments->phirhs, 0.0, -1.0); |
1352 | + check_var(cctkGH, "gt11rhs", &cctk_arguments->gt11rhs, 0.0, -1.0); |
1353 | + check_var(cctkGH, "gt12rhs", &cctk_arguments->gt12rhs, 0.0, -1.0); |
1354 | + check_var(cctkGH, "gt13rhs", &cctk_arguments->gt13rhs, 0.0, -1.0); |
1355 | + check_var(cctkGH, "gt22rhs", &cctk_arguments->gt22rhs, 0.0, -1.0); |
1356 | + check_var(cctkGH, "gt23rhs", &cctk_arguments->gt23rhs, 0.0, -1.0); |
1357 | + check_var(cctkGH, "beta1rhs", &cctk_arguments->beta1rhs, 0.0, -1.0); |
1358 | + check_var(cctkGH, "beta2rhs", &cctk_arguments->beta2rhs, 0.0, -1.0); |
1359 | + check_var(cctkGH, "beta3rhs", &cctk_arguments->beta3rhs, 0.0, -1.0); |
1360 | + check_var(cctkGH, "trKrhs", &cctk_arguments->trKrhs, 0.0, -1.0); |
1361 | + check_var(cctkGH, "At11rhs", &cctk_arguments->At11rhs, 0.0, -1.0); |
1362 | + check_var(cctkGH, "At12rhs", &cctk_arguments->At12rhs, 0.0, -1.0); |
1363 | + check_var(cctkGH, "At13rhs", &cctk_arguments->At13rhs, 0.0, -1.0); |
1364 | + check_var(cctkGH, "At22rhs", &cctk_arguments->At22rhs, 0.0, -1.0); |
1365 | + check_var(cctkGH, "At23rhs", &cctk_arguments->At23rhs, 0.0, -1.0); |
1366 | + check_var(cctkGH, "At33rhs", &cctk_arguments->At33rhs, 0.0, -1.0); |
1367 | +} |
1368 | + |
1369 | + |
1370 | + |
1371 | +#ifndef SRCDIR |
1372 | +# define SRCDIR "." |
1373 | +#endif |
1374 | + |
1375 | +int main(int argc, char** argv) |
1376 | +{ |
1377 | + printf("EinsteinToolkit test\n"); |
1378 | + |
1379 | + |
1380 | + |
1381 | + printf("Reading sources...\n"); |
1382 | + FILE *const source1_file = fopen(SRCDIR "/ML_BSSN_CL_RHS1.cl", "r"); |
1383 | + assert(source1_file != NULL && "ML_BSSN_CL_RHS1.cl not found!"); |
1384 | + fseek(source1_file, 0, SEEK_END); |
1385 | + size_t const source1_size = ftell(source1_file); |
1386 | + fseek(source1_file, 0, SEEK_SET); |
1387 | + char source1[source1_size + 1]; |
1388 | + fread(source1, source1_size, 1, source1_file); |
1389 | + source1[source1_size] = '\0'; |
1390 | + fclose(source1_file); |
1391 | + |
1392 | + FILE *const source2_file = fopen(SRCDIR "/ML_BSSN_CL_RHS2.cl", "r"); |
1393 | + assert(source2_file != NULL && "ML_BSSN_CL_RHS2.cl not found!"); |
1394 | + fseek(source2_file, 0, SEEK_END); |
1395 | + size_t const source2_size = ftell(source2_file); |
1396 | + fseek(source2_file, 0, SEEK_SET); |
1397 | + char source2[source2_size + 1]; |
1398 | + fread(source2, source2_size, 1, source2_file); |
1399 | + source2[source2_size] = '\0'; |
1400 | + fclose(source2_file); |
1401 | + |
1402 | + |
1403 | + |
1404 | + printf("Initialise...\n"); |
1405 | + setup(); |
1406 | + cGH cctkGH; |
1407 | + cctk_parameters_t cctk_parameters; |
1408 | + cctk_arguments_t cctk_arguments; |
1409 | + init(&cctkGH, &cctk_parameters, &cctk_arguments); |
1410 | + |
1411 | + printf("RHS1...\n"); |
1412 | + exec_ML_BSSN_CL_RHS1(source1, &cctkGH, &cctk_parameters, &cctk_arguments); |
1413 | + printf("RHS2...\n"); |
1414 | + exec_ML_BSSN_CL_RHS2(source2, &cctkGH, &cctk_parameters, &cctk_arguments); |
1415 | + |
1416 | + check(&cctkGH, &cctk_parameters, &cctk_arguments); |
1417 | + |
1418 | + |
1419 | + |
1420 | + printf("Begin timing %d iterations...\n", niters); |
1421 | + struct timeval tv0; |
1422 | + gettimeofday(&tv0, NULL); |
1423 | + for (int n=0; n<niters; ++n) { |
1424 | + exec_ML_BSSN_CL_RHS1(source1, &cctkGH, &cctk_parameters, &cctk_arguments); |
1425 | + exec_ML_BSSN_CL_RHS2(source2, &cctkGH, &cctk_parameters, &cctk_arguments); |
1426 | + } |
1427 | + struct timeval tv1; |
1428 | + gettimeofday(&tv1, NULL); |
1429 | + printf("End timing\n"); |
1430 | + |
1431 | + |
1432 | + |
1433 | + double const elapsed = |
1434 | + (tv1.tv_sec + 1.0e-6 * tv1.tv_usec) - |
1435 | + (tv0.tv_sec + 1.0e-6 * tv0.tv_usec); |
1436 | + int const npoints = |
1437 | + cctkGH.cctk_lsh[0] * cctkGH.cctk_lsh[1] * cctkGH.cctk_lsh[2]; |
1438 | + double const time_per_point = elapsed / niters / npoints; |
1439 | + printf("Total elapsed time: %g sec\n", elapsed); |
1440 | + printf("RESULT: Time per grid point update: %g usec\n", |
1441 | + 1.0e+6 * time_per_point); |
1442 | + double const flop_per_point = 3400.0; |
1443 | + printf(" This corresponds to %g GFlop/s\n", |
1444 | + 1.0e-9 * flop_per_point / time_per_point); |
1445 | + |
1446 | + printf("\n"); |
1447 | + // VECTOR_SIZE_I=1: 3388 FLop per gpu |
1448 | + // VECTOR_SIZE_I=2: 3418 Flop per gpu |
1449 | + printf("Note: This benchmark performs about 3,400 Flop per grid point update.\n"); |
1450 | + printf(" A \"typical\" result is about 1.0 usec.\n"); |
1451 | + printf(" Smaller numbers are better.\n"); |
1452 | + printf("\n"); |
1453 | + |
1454 | + |
1455 | + |
1456 | + printf ("Done.\n"); |
1457 | + return 0; |
1458 | +} |
1459 | |
1460 | === added file 'examples/EinsteinToolkit/ML_BSSN_CL_RHS1.cl' |
1461 | --- examples/EinsteinToolkit/ML_BSSN_CL_RHS1.cl 1970-01-01 00:00:00 +0000 |
1462 | +++ examples/EinsteinToolkit/ML_BSSN_CL_RHS1.cl 2012-12-09 00:26:22 +0000 |
1463 | @@ -0,0 +1,3477 @@ |
1464 | +// -*-C-*- |
1465 | + |
1466 | + |
1467 | + |
1468 | +#define CCTK_ATTRIBUTE_UNUSED __attribute__((__unused__)) |
1469 | +#define CCTK_BUILTIN_EXPECT(a,b) __builtin_expect(a,b) |
1470 | +#define CCTK_UNROLL _Pragma("unroll") |
1471 | + |
1472 | + |
1473 | + |
1474 | +// doubleV vector of double |
1475 | +// convert_doubleV convert to doubleV |
1476 | +// longV vector of long (same size as double) |
1477 | +// indicesV longV containing (0,1,2,...) |
1478 | +// vloadV load unaligned vector |
1479 | +// vstoreV store unaligned vector |
1480 | + |
1481 | +#if VECTOR_SIZE_I == 1 |
1482 | +# define doubleV double |
1483 | +# define convert_doubleV convert_double |
1484 | +# define longV long |
1485 | +# define indicesV ((longV)(0)) |
1486 | +# define vloadV(i,p) ((p)[i]) |
1487 | +# define vstoreV(x,i,p) ((p)[i]=(x)) |
1488 | +#elif VECTOR_SIZE_I == 2 |
1489 | +# define doubleV double2 |
1490 | +# define convert_doubleV convert_double2 |
1491 | +# define longV long2 |
1492 | +# define indicesV ((longV)(0,1)) |
1493 | +# define vloadV vload2 |
1494 | +# define vstoreV vstore2 |
1495 | +#elif VECTOR_SIZE_I == 4 |
1496 | +# define doubleV double4 |
1497 | +# define convert_doubleV convert_double4 |
1498 | +# define longV long4 |
1499 | +# define indicesV ((longV)(0,1,2,3)) |
1500 | +# define vloadV vload4 |
1501 | +# define vstoreV vstore4 |
1502 | +#elif VECTOR_SIZE_I == 8 |
1503 | +# define doubleV double8 |
1504 | +# define convert_doubleV convert_double8 |
1505 | +# define longV long8 |
1506 | +# define indicesV ((longV)(0,1,2,3,4,5,6,7)) |
1507 | +# define vloadV vload8 |
1508 | +# define vstoreV vstore8 |
1509 | +#elif VECTOR_SIZE_I == 16 |
1510 | +# define doubleV double16 |
1511 | +# define convert_doubleV convert_double16 |
1512 | +# define longV long16 |
1513 | +# define indicesV ((longV)(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)) |
1514 | +# define vloadV vload16 |
1515 | +# define vstoreV vstore16 |
1516 | +#else |
1517 | +# error |
1518 | +#endif |
1519 | + |
1520 | +#if VECTOR_SIZE_J!=1 || VECTOR_SIZE_K!=1 |
1521 | +# error |
1522 | +#endif |
1523 | + |
1524 | + |
1525 | + |
1526 | +#define CCTK_REAL double |
1527 | +#define CCTK_INT int |
1528 | +#define CCTK_LONG long |
1529 | + |
1530 | +#define CCTK_REAL_VEC_SIZE VECTOR_SIZE_I |
1531 | +#define CCTK_REAL_VEC doubleV |
1532 | +#define CCTK_INT_VEC longV |
1533 | +#define convert_real_vec convert_doubleV |
1534 | +#define vec_index convert_real_vec(indicesV) |
1535 | + |
1536 | + |
1537 | + |
1538 | +// vec_loada load aligned vector |
1539 | +// vec_loadu load unaligned vector |
1540 | +// vec_load load regular vector |
1541 | +// vec_loadu_maybe3 load unaligned vector |
1542 | +// vec_storea store aligned vector |
1543 | +// vec_storeu store unaligned vector |
1544 | +// vec_store_nta store regular vector |
1545 | +// vec_store_nta_partial store regular vector partially |
1546 | + |
1547 | +// VECTORISE_ALIGNED_ARRAYS assumes that all grid points [0,j,k] are |
1548 | +// aligned, and arrays are padded as necessary |
1549 | + |
1550 | +#define vec_loada(p) (* (CCTK_REAL_VEC const global *) & (p)) |
1551 | +#define vec_loadu(p) vloadV(0, & (p)) |
1552 | + |
1553 | +#if VECTORISE_ALIGNED_ARRAYS |
1554 | +# define vec_load(p) vec_loada(p) |
1555 | +# define vec_loadu_maybe3(off1,off2,off3, p) \ |
1556 | + ((off1) % CCTK_REAL_VEC_SIZE == 0 ? vec_loada(p) : vec_loadu(p)) |
1557 | +#else |
1558 | +# define vec_load(p) vec_loadu(p) |
1559 | +# define vec_loadu_maybe3(off1,off2,off3, p) vec_loadu(p) |
1560 | +#endif |
1561 | + |
1562 | +#define vec_storea(p, x) (* (CCTK_REAL_VEC global *) & (p) = (x)) |
1563 | +#define vec_storeu(p, x) vstoreV(x, 0, & (p)) |
1564 | + |
1565 | +#if VECTORISE_ALIGNED_ARRAYS |
1566 | +# define vec_store_nta(p, x) vec_storea(p, x) |
1567 | +#else |
1568 | +# define vec_store_nta(p, x) vec_storeu(p, x) |
1569 | +#endif |
1570 | + |
1571 | +#define vec_store_partial_prepare(i, imin, imax) |
1572 | + |
1573 | +#if CCTK_REAL_VEC_SIZE == 1 |
1574 | + |
1575 | +# define vec_store_nta_partial(p, x) \ |
1576 | + do { \ |
1577 | + if (CCTK_BUILTIN_EXPECT(lc_vec_any_I && lc_vec_any_J && lc_vec_any_K, \ |
1578 | + true)) \ |
1579 | + { \ |
1580 | + vec_store_nta(p, x); \ |
1581 | + } \ |
1582 | + } while(0) |
1583 | + |
1584 | +#elif CCTK_REAL_VEC_SIZE == 2 |
1585 | + |
1586 | +# define vec_store_nta_partial(p, x) \ |
1587 | + do { \ |
1588 | + if (CCTK_BUILTIN_EXPECT(lc_vec_any_I && lc_vec_any_J && lc_vec_any_K, \ |
1589 | + true)) \ |
1590 | + { \ |
1591 | + if (CCTK_BUILTIN_EXPECT(lc_vec_all_I, true)) { \ |
1592 | + vec_store_nta(p, x); \ |
1593 | + } else { \ |
1594 | + if (lc_vec_lo_I) { \ |
1595 | + (&(p))[0] = (x).s0; \ |
1596 | + } else { \ |
1597 | + (&(p))[1] = (x).s1; \ |
1598 | + } \ |
1599 | + } \ |
1600 | + } \ |
1601 | + } while (0) |
1602 | + |
1603 | +#else |
1604 | + |
1605 | +# define vec_store_nta_partial(p, x) \ |
1606 | + do { \ |
1607 | + if (CCTK_BUILTIN_EXPECT(lc_vec_any_I && lc_vec_any_J && lc_vec_any_K, \ |
1608 | + true)) \ |
1609 | + { \ |
1610 | + if (CCTK_BUILTIN_EXPECT(lc_vec_all_I, true)) { \ |
1611 | + vec_store_nta(p, x); \ |
1612 | + } else { \ |
1613 | + /* select(a,b,c) = MSB(c) ? b : a */ \ |
1614 | + vec_store_nta(p, select(vec_load(p), x, lc_vec_mask_I)); \ |
1615 | + } \ |
1616 | + } \ |
1617 | + } while(0) |
1618 | + |
1619 | +#endif |
1620 | + |
1621 | + |
1622 | + |
1623 | +#define kneg(x) (-(x)) |
1624 | + |
1625 | +#define kadd(x,y) ((x)+(y)) |
1626 | +#define ksub(x,y) ((x)-(y)) |
1627 | +#define kmul(x,y) ((x)*(y)) |
1628 | +#define kdiv(x,y) ((x)/(y)) |
1629 | + |
1630 | +#define kmadd(x,y,z) mad(x,y,z) // faster than fma(x,y,z) |
1631 | +#define kmsub(x,y,z) mad(x,y,-(z)) |
1632 | +#define knmadd(x,y,z) (-mad(x,y,z)) |
1633 | +#define knmsub(x,y,z) (-mad(x,y,-(z))) |
1634 | + |
1635 | +#define kcopysign(x,y) copysign(x,y) |
1636 | +#define kfabs(x) fabs(x) |
1637 | +#define kfmax(x,y) fmax(x,y) |
1638 | +#define kfmin(x,y) fmin(x,y) |
1639 | +#define kfnabs(x) (-fabs(x)) |
1640 | +#define ksqrt(x) sqrt(x) |
1641 | + |
1642 | +#define kacos(x) acos(x) |
1643 | +#define kacosh(x) acosh(x) |
1644 | +#define kasin(x) asin(x) |
1645 | +#define kasinh(x) asinh(x) |
1646 | +#define katan(x) atan(x) |
1647 | +#define katan2(x,y) atan2(x,y) |
1648 | +#define katanh(x) atanh(x) |
1649 | +#define kcos(x) cos(x) |
1650 | +#define kcosh(x) cosh(x) |
1651 | +#define kexp(x) exp(x) |
1652 | +#define klog(x) log(x) |
1653 | +#define kpow(x,a) pow(x,a) |
1654 | +#define ksin(x) sin(x) |
1655 | +#define ksinh(x) sinh(x) |
1656 | +#define ktan(x) tan(x) |
1657 | +#define ktanh(x) tanh(x) |
1658 | + |
1659 | +// Choice [sign(x)>0 ? y : z] |
1660 | +#define kifpos(x,y,z) select(y,z,x) |
1661 | +#define kifneg(x,y,z) select(z,y,x) |
1662 | + |
1663 | +// Choice [x ? y : z] |
1664 | +#define kifthen(x,y,z) \ |
1665 | + select((CCTK_REAL_VEC)(z), (CCTK_REAL_VEC)(y), (CCTK_INT_VEC)(x)) |
1666 | + |
1667 | + |
1668 | + |
1669 | +#if 0 && defined(__APPLE__) |
1670 | + |
1671 | +// Apple's pow implementation is much better than their pown |
1672 | +# undef pown |
1673 | +# define pown pow |
1674 | + |
1675 | +inline CCTK_REAL myfabs(CCTK_REAL x); |
1676 | +inline CCTK_REAL myfabs(CCTK_REAL x) |
1677 | +{ |
1678 | + return x>=0 ? x : -x; |
1679 | +} |
1680 | + |
1681 | +inline CCTK_REAL mycos1(CCTK_REAL x); |
1682 | +inline CCTK_REAL mycos1(CCTK_REAL x) |
1683 | +{ |
1684 | + // 0<=x<=pi/2 |
1685 | + CCTK_REAL const c1 = +1.0; |
1686 | + CCTK_REAL const c2 = -1.0/2.0; |
1687 | + CCTK_REAL const c3 = +1.0/24.0; |
1688 | + CCTK_REAL const c4 = -1.0/720.0; |
1689 | + CCTK_REAL const c5 = +1.0/40320.0; |
1690 | + CCTK_REAL const c6 = -1.0/3628800.0; |
1691 | + CCTK_REAL const c7 = +1.0/479001600.0; |
1692 | + CCTK_REAL const c8 = -1.0/87178291200.0; |
1693 | + CCTK_REAL const x2 = pown(x,2); |
1694 | + return (c1 + x2 * |
1695 | + (c2 + x2 * |
1696 | + (c3 + x2 * |
1697 | + (c4 + x2 * |
1698 | + (c5 + x2 * |
1699 | + (c6 + x2 * |
1700 | + (c7 + x2 * c8))))))); |
1701 | +} |
1702 | + |
1703 | +inline CCTK_REAL mycos(CCTK_REAL x); |
1704 | +inline CCTK_REAL mycos(CCTK_REAL x) |
1705 | +{ |
1706 | + x = myfabs(x); |
1707 | + x = fmod(x,2*M_PI); |
1708 | + if (x>M_PI) x=M_PI-x; |
1709 | + bool const isneg = x>M_PI/2; |
1710 | + if (isneg) x=M_PI/2-x; |
1711 | + CCTK_REAL y = mycos1(x); |
1712 | + if (isneg) y=-y; |
1713 | + return y; |
1714 | +} |
1715 | + |
1716 | +# undef cos |
1717 | +# define cos mycos |
1718 | + |
1719 | + |
1720 | + |
1721 | +# undef kcos |
1722 | +// Apple's OpenCL compiler segfaults when calling cos on a vector, so |
1723 | +// we serialise this operation explicitly |
1724 | +inline CCTK_REAL_VEC kcos(CCTK_REAL_VEC const x); |
1725 | +# if CCTK_REAL_VEC_SIZE==1 |
1726 | +inline CCTK_REAL_VEC kcos(CCTK_REAL_VEC const x) |
1727 | +{ |
1728 | + return cos(x); |
1729 | +} |
1730 | +# elif CCTK_REAL_VEC_SIZE==2 |
1731 | +inline CCTK_REAL_VEC kcos(CCTK_REAL_VEC const x) |
1732 | +{ |
1733 | + return (CCTK_REAL_VEC)(cos(x.s0), cos(x.s1)); |
1734 | +} |
1735 | +# else |
1736 | +# error |
1737 | +# endif |
1738 | + |
1739 | +#endif |
1740 | + |
1741 | + |
1742 | + |
1743 | +//////////////////////////////////////////////////////////////////////////////// |
1744 | + |
1745 | + |
1746 | + |
1747 | +#define dim 3 |
1748 | + |
1749 | + |
1750 | + |
1751 | +typedef struct { |
1752 | + // Doubles first, then ints, to ensure proper alignment |
1753 | + // Coordinates: |
1754 | + double cctk_origin_space[dim]; |
1755 | + double cctk_delta_space[dim]; |
1756 | + double cctk_time; |
1757 | + double cctk_delta_time; |
1758 | + // Grid structure properties: |
1759 | + int cctk_gsh[dim]; |
1760 | + int cctk_lbnd[dim]; |
1761 | + int cctk_lsh[dim]; |
1762 | + int cctk_ash[dim]; |
1763 | + // Loop settings: |
1764 | + int lmin[dim]; // loop region |
1765 | + int lmax[dim]; |
1766 | + int imin[dim]; // active region |
1767 | + int imax[dim]; |
1768 | +} cGH; |
1769 | + |
1770 | + |
1771 | + |
1772 | +// Cactus compatibility definitions |
1773 | + |
1774 | +#define DECLARE_CCTK_ARGUMENTS \ |
1775 | + ptrdiff_t const cctk_lbnd[] = \ |
1776 | + {cctkGH->cctk_lbnd[0], cctkGH->cctk_lbnd[1], cctkGH->cctk_lbnd[2]}; \ |
1777 | + ptrdiff_t const cctk_lsh[] = \ |
1778 | + {cctkGH->cctk_lsh[0], cctkGH->cctk_lsh[1], cctkGH->cctk_lsh[2]}; \ |
1779 | + ptrdiff_t const imin[] = \ |
1780 | + {cctkGH->imin[0], cctkGH->imin[1], cctkGH->imin[2]}; \ |
1781 | + ptrdiff_t const imax[] = \ |
1782 | + {cctkGH->imax[0], cctkGH->imax[1], cctkGH->imax[2]}; \ |
1783 | + CCTK_REAL const cctk_time = cctkGH->cctk_time; \ |
1784 | + CCTK_REAL const cctk_delta_time = cctkGH->cctk_delta_time; \ |
1785 | + CCTK_REAL constant const *restrict const cctk_origin_space = \ |
1786 | + cctkGH->cctk_origin_space; \ |
1787 | + CCTK_REAL constant const *restrict const cctk_delta_space = \ |
1788 | + cctkGH->cctk_delta_space; \ |
1789 | + bool const stress_energy_state1 = 0; |
1790 | + |
1791 | +#define CCTK_GFINDEX3D(cctkGH,i,j,k) \ |
1792 | + ((i) + cctk_lsh[0] * ((j) + cctk_lsh[1] * (k))) |
1793 | + |
1794 | +#define CCTK_ORIGIN_SPACE(d) (cctkGH->cctk_origin_space[d]) |
1795 | +#define CCTK_DELTA_SPACE(d) (cctkGH->cctk_delta_space[d]) |
1796 | +#define CCTK_DELTA_TIME (cctkGH->cctk_delta_time) |
1797 | + |
1798 | + |
1799 | + |
1800 | +// Kranc compatibility definitions |
1801 | + |
1802 | +#define Pi M_PI |
1803 | +#define IfThen(c,x,y) ((c)?(x):(y)) |
1804 | +#define ToReal(x) ((CCTK_REAL_VEC)(CCTK_REAL)(x)) |
1805 | + |
1806 | +CCTK_REAL ScalarINV(CCTK_REAL const x); |
1807 | +CCTK_REAL ScalarINV(CCTK_REAL const x) |
1808 | +{ |
1809 | + return ((CCTK_REAL)1)/x; |
1810 | +} |
1811 | +CCTK_REAL_VEC INV(CCTK_REAL_VEC const x); |
1812 | +CCTK_REAL_VEC INV(CCTK_REAL_VEC const x) |
1813 | +{ |
1814 | + return ToReal(1)/x; |
1815 | +} |
1816 | +/* CCTK_REAL_VEC Sign(CCTK_REAL_VEC const x); */ |
1817 | +/* CCTK_REAL_VEC Sign(CCTK_REAL_VEC const x) */ |
1818 | +/* { */ |
1819 | +/* return x==ToReal(0) ? ToReal(0) : copysign(ToReal(1), x); */ |
1820 | +/* } */ |
1821 | +// CCTK_REAL_VEC SQR(CCTK_REAL_VEC const x) |
1822 | +// { |
1823 | +// return pown(x,2); |
1824 | +// } |
1825 | +CCTK_REAL_VEC SQR(CCTK_REAL_VEC const x); |
1826 | +CCTK_REAL_VEC SQR(CCTK_REAL_VEC const x) |
1827 | +{ |
1828 | + return x*x; |
1829 | +} |
1830 | +CCTK_REAL_VEC ksgn(CCTK_REAL_VEC x); |
1831 | +CCTK_REAL_VEC ksgn(CCTK_REAL_VEC x) |
1832 | +{ |
1833 | + return kifthen(x==ToReal(0.0), ToReal(0.0), kcopysign(ToReal(1.0), x)); |
1834 | +} |
1835 | +CCTK_INT_VEC kisgn(CCTK_REAL_VEC x); |
1836 | +CCTK_INT_VEC kisgn(CCTK_REAL_VEC x) |
1837 | +{ |
1838 | + return select(select((CCTK_INT_VEC)+1, |
1839 | + (CCTK_INT_VEC)-1, (CCTK_INT_VEC)(x<ToReal(0.0))), |
1840 | + (CCTK_INT_VEC)0, (CCTK_INT_VEC)(x==ToReal(0.0))); |
1841 | +} |
1842 | + |
1843 | +#define KRANC_GFOFFSET3D(u,i,j,k) \ |
1844 | + vec_loadu_maybe3(i,j,k,(u)[di*(i)+dj*(j)+dk*(k)]) |
1845 | + |
1846 | +#define eTtt ((CCTK_REAL global const *)0) |
1847 | +#define eTtx ((CCTK_REAL global const *)0) |
1848 | +#define eTty ((CCTK_REAL global const *)0) |
1849 | +#define eTtz ((CCTK_REAL global const *)0) |
1850 | +#define eTxx ((CCTK_REAL global const *)0) |
1851 | +#define eTxy ((CCTK_REAL global const *)0) |
1852 | +#define eTxz ((CCTK_REAL global const *)0) |
1853 | +#define eTyy ((CCTK_REAL global const *)0) |
1854 | +#define eTyz ((CCTK_REAL global const *)0) |
1855 | +#define eTzz ((CCTK_REAL global const *)0) |
1856 | +#define jacobian_derivative_group "" |
1857 | +#define jacobian_group "" |
1858 | +#define jacobian_identity_map 0 |
1859 | +#define stress_energy_state (&stress_energy_state1) |
1860 | +#define CCTK_IsFunctionAliased(x) 0 |
1861 | +#define CCTK_WARN(lev,msg) ((void)0) |
1862 | +#define GenericFD_GroupDataPointers(a,b,c,d) ((void)0) |
1863 | +#define MultiPatch_GetMap(x) 0 |
1864 | +#define strlen(x) 0 |
1865 | + |
1866 | + |
1867 | + |
1868 | +//////////////////////////////////////////////////////////////////////////////// |
1869 | + |
1870 | + |
1871 | + |
1872 | +#define LC_SET_GROUP_VARS(D) \ |
1873 | + ptrdiff_t const ind##D CCTK_ATTRIBUTE_UNUSED = \ |
1874 | + (lc_off##D + VECTOR_SIZE_##D * UNROLL_SIZE_##D * \ |
1875 | + (lc_grp##D + GROUP_SIZE_##D * \ |
1876 | + (lc_til##D + TILE_SIZE_##D * lc_grd##D))); \ |
1877 | + bool const lc_grp_done_##D CCTK_ATTRIBUTE_UNUSED = \ |
1878 | + ind##D >= lc_##D##max; |
1879 | + |
1880 | +#define vecVI indicesV |
1881 | +#define vecVJ ((CCTK_INT_VEC)0) |
1882 | +#define vecVK ((CCTK_INT_VEC)0) |
1883 | + |
1884 | +#define LC_SET_VECTOR_VARS(IND,D) \ |
1885 | + ptrdiff_t const IND CCTK_ATTRIBUTE_UNUSED = \ |
1886 | + (lc_off##D + VECTOR_SIZE_##D * \ |
1887 | + (lc_unr##D + UNROLL_SIZE_##D * \ |
1888 | + (lc_grp##D + GROUP_SIZE_##D * \ |
1889 | + (lc_til##D + TILE_SIZE_##D * lc_grd##D)))); \ |
1890 | + bool const lc_vec_trivial_##D CCTK_ATTRIBUTE_UNUSED = \ |
1891 | + VECTOR_SIZE_##D * UNROLL_SIZE_##D == 1; \ |
1892 | + bool const lc_vec_any_##D CCTK_ATTRIBUTE_UNUSED = \ |
1893 | + /*TODO because unroll size is 1*/ \ |
1894 | + 1 /*TODO lc_vec_trivial_##D || \ |
1895 | + (IND+VECTOR_SIZE_##D-1 >= lc_##D##min && IND < lc_##D##max)*/; \ |
1896 | + bool const lc_vec_lo_##D CCTK_ATTRIBUTE_UNUSED = \ |
1897 | + lc_vec_trivial_##D || \ |
1898 | + IND >= lc_##D##min; \ |
1899 | + bool const lc_vec_hi_##D CCTK_ATTRIBUTE_UNUSED = \ |
1900 | + lc_vec_trivial_##D || \ |
1901 | + IND+VECTOR_SIZE_##D-1 < lc_##D##max; \ |
1902 | + bool const lc_vec_all_##D CCTK_ATTRIBUTE_UNUSED = \ |
1903 | + lc_vec_trivial_##D || \ |
1904 | + (lc_vec_lo_##D && lc_vec_hi_##D); \ |
1905 | + CCTK_INT_VEC const lc_vec_mask_##D CCTK_ATTRIBUTE_UNUSED = \ |
1906 | + lc_vec_trivial_##D ? \ |
1907 | + (CCTK_INT_VEC)true : \ |
1908 | + ((CCTK_INT_VEC)IND+vecV##D >= (CCTK_INT_VEC)lc_##D##min) & \ |
1909 | + ((CCTK_INT_VEC)IND+vecV##D < (CCTK_INT_VEC)lc_##D##max); |
1910 | + |
1911 | +#define LC_LOOP3VEC(name, \ |
1912 | + i,j,k, \ |
1913 | + imin,jmin,kmin, \ |
1914 | + imax,jmax,kmax, \ |
1915 | + ilsh,jlsh,klsh, \ |
1916 | + vecsize) \ |
1917 | + do { \ |
1918 | + typedef int lc_loop3_##name; \ |
1919 | + \ |
1920 | + ptrdiff_t const lc_Imin = (imin); \ |
1921 | + ptrdiff_t const lc_Jmin = (jmin); \ |
1922 | + ptrdiff_t const lc_Kmin = (kmin); \ |
1923 | + ptrdiff_t const lc_Imax = (imax); \ |
1924 | + ptrdiff_t const lc_Jmax = (jmax); \ |
1925 | + ptrdiff_t const lc_Kmax = (kmax); \ |
1926 | + ptrdiff_t const lc_offI = cctkGH->lmin[0]; /* offset */ \ |
1927 | + ptrdiff_t const lc_offJ = cctkGH->lmin[1]; \ |
1928 | + ptrdiff_t const lc_offK = cctkGH->lmin[2]; \ |
1929 | + ptrdiff_t const lc_grpI = get_local_id(0); /* index in group */ \ |
1930 | + ptrdiff_t const lc_grpJ = get_local_id(1); \ |
1931 | + ptrdiff_t const lc_grpK = get_local_id(2); \ |
1932 | + ptrdiff_t const lc_grdI = get_group_id(0); /* index in grid */ \ |
1933 | + ptrdiff_t const lc_grdJ = get_group_id(1); \ |
1934 | + ptrdiff_t const lc_grdK = get_group_id(2); \ |
1935 | + \ |
1936 | + ptrdiff_t const lc_imin = lc_Imin; \ |
1937 | + ptrdiff_t const lc_imax = lc_Imax; \ |
1938 | + \ |
1939 | + for (ptrdiff_t lc_tilK = 0; lc_tilK < TILE_SIZE_K; ++lc_tilK) { \ |
1940 | + LC_SET_GROUP_VARS(K); \ |
1941 | + if (CCTK_BUILTIN_EXPECT(lc_grp_done_K, 0)) break; \ |
1942 | + for (ptrdiff_t lc_tilJ = 0; lc_tilJ < TILE_SIZE_J; ++lc_tilJ) { \ |
1943 | + LC_SET_GROUP_VARS(J); \ |
1944 | + if (CCTK_BUILTIN_EXPECT(lc_grp_done_J, 0)) break; \ |
1945 | + for (ptrdiff_t lc_tilI = 0; lc_tilI < TILE_SIZE_I; ++lc_tilI) { \ |
1946 | + LC_SET_GROUP_VARS(I); \ |
1947 | + if (CCTK_BUILTIN_EXPECT(lc_grp_done_I, 0)) break; \ |
1948 | + \ |
1949 | + ptrdiff_t const lc_unrK = 0; \ |
1950 | + /*TODO CCTK_UNROLL \ |
1951 | + for (ptrdiff_t lc_unrK = 0; lc_unrK < UNROLL_SIZE_K; ++lc_unrK)*/ { \ |
1952 | + LC_SET_VECTOR_VARS(k,K); \ |
1953 | + ptrdiff_t const lc_unrJ = 0; \ |
1954 | + /*TODO CCTK_UNROLL \ |
1955 | + for (ptrdiff_t lc_unrJ = 0; lc_unrJ < UNROLL_SIZE_J; ++lc_unrJ)*/ { \ |
1956 | + LC_SET_VECTOR_VARS(j,J); \ |
1957 | + ptrdiff_t const lc_unrI = 0; \ |
1958 | + /*TODO CCTK_UNROLL \ |
1959 | + for (ptrdiff_t lc_unrI = 0; lc_unrI < UNROLL_SIZE_I; ++lc_unrI)*/ { \ |
1960 | + LC_SET_VECTOR_VARS(i,I); \ |
1961 | + \ |
1962 | + { |
1963 | +#define LC_ENDLOOP3VEC(name) \ |
1964 | + } \ |
1965 | + } \ |
1966 | + } \ |
1967 | + } \ |
1968 | + } \ |
1969 | + } \ |
1970 | + } \ |
1971 | + typedef lc_loop3_##name lc_ensure_proper_nesting; \ |
1972 | + } while(0) |
1973 | + |
1974 | +#define LC_LOOP3(name, \ |
1975 | + i,j,k, \ |
1976 | + imin,jmin,kmin, \ |
1977 | + imax,jmax,kmax, \ |
1978 | + ilsh,jlsh,klsh) \ |
1979 | + LC_LOOP3VEC(name, \ |
1980 | + i,j,k, \ |
1981 | + imin,jmin,kmin, \ |
1982 | + imax,jmax,kmax, \ |
1983 | + ilsh,jlsh,klsh, \ |
1984 | + 1) |
1985 | +#define LC_ENDLOOP3(name) \ |
1986 | + LC_ENDLOOP3VEC(name) |
1987 | + |
1988 | +// Cactus parameters: |
1989 | +typedef struct { |
1990 | + CCTK_REAL A_bound_limit; |
1991 | + CCTK_REAL A_bound_scalar; |
1992 | + CCTK_REAL A_bound_speed; |
1993 | + CCTK_REAL alpha_bound_limit; |
1994 | + CCTK_REAL alpha_bound_scalar; |
1995 | + CCTK_REAL alpha_bound_speed; |
1996 | + CCTK_REAL AlphaDriver; |
1997 | + CCTK_REAL At11_bound_limit; |
1998 | + CCTK_REAL At11_bound_scalar; |
1999 | + CCTK_REAL At11_bound_speed; |
2000 | + CCTK_REAL At12_bound_limit; |
2001 | + CCTK_REAL At12_bound_scalar; |
2002 | + CCTK_REAL At12_bound_speed; |
2003 | + CCTK_REAL At13_bound_limit; |
2004 | + CCTK_REAL At13_bound_scalar; |
2005 | + CCTK_REAL At13_bound_speed; |
2006 | + CCTK_REAL At22_bound_limit; |
2007 | + CCTK_REAL At22_bound_scalar; |
2008 | + CCTK_REAL At22_bound_speed; |
2009 | + CCTK_REAL At23_bound_limit; |
2010 | + CCTK_REAL At23_bound_scalar; |
2011 | + CCTK_REAL At23_bound_speed; |
2012 | + CCTK_REAL At33_bound_limit; |
2013 | + CCTK_REAL At33_bound_scalar; |
2014 | + CCTK_REAL At33_bound_speed; |
2015 | + CCTK_REAL B1_bound_limit; |
2016 | + CCTK_REAL B1_bound_scalar; |
2017 | + CCTK_REAL B1_bound_speed; |
2018 | + CCTK_REAL B2_bound_limit; |
2019 | + CCTK_REAL B2_bound_scalar; |
2020 | + CCTK_REAL B2_bound_speed; |
2021 | + CCTK_REAL B3_bound_limit; |
2022 | + CCTK_REAL B3_bound_scalar; |
2023 | + CCTK_REAL B3_bound_speed; |
2024 | + CCTK_REAL beta1_bound_limit; |
2025 | + CCTK_REAL beta1_bound_scalar; |
2026 | + CCTK_REAL beta1_bound_speed; |
2027 | + CCTK_REAL beta2_bound_limit; |
2028 | + CCTK_REAL beta2_bound_scalar; |
2029 | + CCTK_REAL beta2_bound_speed; |
2030 | + CCTK_REAL beta3_bound_limit; |
2031 | + CCTK_REAL beta3_bound_scalar; |
2032 | + CCTK_REAL beta3_bound_speed; |
2033 | + CCTK_REAL BetaDriver; |
2034 | + CCTK_REAL EpsDiss; |
2035 | + CCTK_REAL gt11_bound_limit; |
2036 | + CCTK_REAL gt11_bound_scalar; |
2037 | + CCTK_REAL gt11_bound_speed; |
2038 | + CCTK_REAL gt12_bound_limit; |
2039 | + CCTK_REAL gt12_bound_scalar; |
2040 | + CCTK_REAL gt12_bound_speed; |
2041 | + CCTK_REAL gt13_bound_limit; |
2042 | + CCTK_REAL gt13_bound_scalar; |
2043 | + CCTK_REAL gt13_bound_speed; |
2044 | + CCTK_REAL gt22_bound_limit; |
2045 | + CCTK_REAL gt22_bound_scalar; |
2046 | + CCTK_REAL gt22_bound_speed; |
2047 | + CCTK_REAL gt23_bound_limit; |
2048 | + CCTK_REAL gt23_bound_scalar; |
2049 | + CCTK_REAL gt23_bound_speed; |
2050 | + CCTK_REAL gt33_bound_limit; |
2051 | + CCTK_REAL gt33_bound_scalar; |
2052 | + CCTK_REAL gt33_bound_speed; |
2053 | + CCTK_REAL harmonicF; |
2054 | + CCTK_REAL LapseACoeff; |
2055 | + CCTK_REAL LapseAdvectionCoeff; |
2056 | + CCTK_REAL MinimumLapse; |
2057 | + CCTK_REAL ML_curv_bound_limit; |
2058 | + CCTK_REAL ML_curv_bound_scalar; |
2059 | + CCTK_REAL ML_curv_bound_speed; |
2060 | + CCTK_REAL ML_dtlapse_bound_limit; |
2061 | + CCTK_REAL ML_dtlapse_bound_scalar; |
2062 | + CCTK_REAL ML_dtlapse_bound_speed; |
2063 | + CCTK_REAL ML_dtshift_bound_limit; |
2064 | + CCTK_REAL ML_dtshift_bound_scalar; |
2065 | + CCTK_REAL ML_dtshift_bound_speed; |
2066 | + CCTK_REAL ML_Gamma_bound_limit; |
2067 | + CCTK_REAL ML_Gamma_bound_scalar; |
2068 | + CCTK_REAL ML_Gamma_bound_speed; |
2069 | + CCTK_REAL ML_lapse_bound_limit; |
2070 | + CCTK_REAL ML_lapse_bound_scalar; |
2071 | + CCTK_REAL ML_lapse_bound_speed; |
2072 | + CCTK_REAL ML_log_confac_bound_limit; |
2073 | + CCTK_REAL ML_log_confac_bound_scalar; |
2074 | + CCTK_REAL ML_log_confac_bound_speed; |
2075 | + CCTK_REAL ML_metric_bound_limit; |
2076 | + CCTK_REAL ML_metric_bound_scalar; |
2077 | + CCTK_REAL ML_metric_bound_speed; |
2078 | + CCTK_REAL ML_shift_bound_limit; |
2079 | + CCTK_REAL ML_shift_bound_scalar; |
2080 | + CCTK_REAL ML_shift_bound_speed; |
2081 | + CCTK_REAL ML_trace_curv_bound_limit; |
2082 | + CCTK_REAL ML_trace_curv_bound_scalar; |
2083 | + CCTK_REAL ML_trace_curv_bound_speed; |
2084 | + CCTK_REAL phi_bound_limit; |
2085 | + CCTK_REAL phi_bound_scalar; |
2086 | + CCTK_REAL phi_bound_speed; |
2087 | + CCTK_REAL ShiftAdvectionCoeff; |
2088 | + CCTK_REAL ShiftBCoeff; |
2089 | + CCTK_REAL ShiftGammaCoeff; |
2090 | + CCTK_REAL SpatialBetaDriverRadius; |
2091 | + CCTK_REAL SpatialShiftGammaCoeffRadius; |
2092 | + CCTK_REAL trK_bound_limit; |
2093 | + CCTK_REAL trK_bound_scalar; |
2094 | + CCTK_REAL trK_bound_speed; |
2095 | + CCTK_REAL Xt1_bound_limit; |
2096 | + CCTK_REAL Xt1_bound_scalar; |
2097 | + CCTK_REAL Xt1_bound_speed; |
2098 | + CCTK_REAL Xt2_bound_limit; |
2099 | + CCTK_REAL Xt2_bound_scalar; |
2100 | + CCTK_REAL Xt2_bound_speed; |
2101 | + CCTK_REAL Xt3_bound_limit; |
2102 | + CCTK_REAL Xt3_bound_scalar; |
2103 | + CCTK_REAL Xt3_bound_speed; |
2104 | + CCTK_INT conformalMethod; |
2105 | + CCTK_INT fdOrder; |
2106 | + CCTK_INT harmonicN; |
2107 | + CCTK_INT harmonicShift; |
2108 | + CCTK_INT ML_BSSN_CL_Advect_calc_every; |
2109 | + CCTK_INT ML_BSSN_CL_Advect_calc_offset; |
2110 | + CCTK_INT ML_BSSN_CL_boundary_calc_every; |
2111 | + CCTK_INT ML_BSSN_CL_boundary_calc_offset; |
2112 | + CCTK_INT ML_BSSN_CL_constraints1_calc_every; |
2113 | + CCTK_INT ML_BSSN_CL_constraints1_calc_offset; |
2114 | + CCTK_INT ML_BSSN_CL_constraints2_calc_every; |
2115 | + CCTK_INT ML_BSSN_CL_constraints2_calc_offset; |
2116 | + CCTK_INT ML_BSSN_CL_convertFromADMBase_calc_every; |
2117 | + CCTK_INT ML_BSSN_CL_convertFromADMBase_calc_offset; |
2118 | + CCTK_INT ML_BSSN_CL_convertFromADMBaseGamma_calc_every; |
2119 | + CCTK_INT ML_BSSN_CL_convertFromADMBaseGamma_calc_offset; |
2120 | + CCTK_INT ML_BSSN_CL_convertToADMBase_calc_every; |
2121 | + CCTK_INT ML_BSSN_CL_convertToADMBase_calc_offset; |
2122 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_every; |
2123 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_offset; |
2124 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_every; |
2125 | + CCTK_INT ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_offset; |
2126 | + CCTK_INT ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_every; |
2127 | + CCTK_INT ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_offset; |
2128 | + CCTK_INT ML_BSSN_CL_Dissipation_calc_every; |
2129 | + CCTK_INT ML_BSSN_CL_Dissipation_calc_offset; |
2130 | + CCTK_INT ML_BSSN_CL_enforce_calc_every; |
2131 | + CCTK_INT ML_BSSN_CL_enforce_calc_offset; |
2132 | + CCTK_INT ML_BSSN_CL_InitGamma_calc_every; |
2133 | + CCTK_INT ML_BSSN_CL_InitGamma_calc_offset; |
2134 | + CCTK_INT ML_BSSN_CL_InitRHS_calc_every; |
2135 | + CCTK_INT ML_BSSN_CL_InitRHS_calc_offset; |
2136 | + CCTK_INT ML_BSSN_CL_MaxNumArrayEvolvedVars; |
2137 | + CCTK_INT ML_BSSN_CL_MaxNumEvolvedVars; |
2138 | + CCTK_INT ML_BSSN_CL_Minkowski_calc_every; |
2139 | + CCTK_INT ML_BSSN_CL_Minkowski_calc_offset; |
2140 | + CCTK_INT ML_BSSN_CL_RHS1_calc_every; |
2141 | + CCTK_INT ML_BSSN_CL_RHS1_calc_offset; |
2142 | + CCTK_INT ML_BSSN_CL_RHS2_calc_every; |
2143 | + CCTK_INT ML_BSSN_CL_RHS2_calc_offset; |
2144 | + CCTK_INT ML_BSSN_CL_RHSStaticBoundary_calc_every; |
2145 | + CCTK_INT ML_BSSN_CL_RHSStaticBoundary_calc_offset; |
2146 | + CCTK_INT other_timelevels; |
2147 | + CCTK_INT rhs_timelevels; |
2148 | + CCTK_INT ShiftAlphaPower; |
2149 | + CCTK_INT timelevels; |
2150 | + CCTK_INT verbose; |
2151 | +} cctk_parameters_t; |
2152 | +#define DECLARE_CCTK_PARAMETERS \ |
2153 | + CCTK_REAL const A_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2154 | + CCTK_REAL const A_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2155 | + CCTK_REAL const A_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2156 | + CCTK_REAL const alpha_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2157 | + CCTK_REAL const alpha_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2158 | + CCTK_REAL const alpha_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2159 | + CCTK_REAL const AlphaDriver CCTK_ATTRIBUTE_UNUSED = 1; \ |
2160 | + CCTK_REAL const At11_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2161 | + CCTK_REAL const At11_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2162 | + CCTK_REAL const At11_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2163 | + CCTK_REAL const At12_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2164 | + CCTK_REAL const At12_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2165 | + CCTK_REAL const At12_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2166 | + CCTK_REAL const At13_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2167 | + CCTK_REAL const At13_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2168 | + CCTK_REAL const At13_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2169 | + CCTK_REAL const At22_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2170 | + CCTK_REAL const At22_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2171 | + CCTK_REAL const At22_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2172 | + CCTK_REAL const At23_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2173 | + CCTK_REAL const At23_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2174 | + CCTK_REAL const At23_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2175 | + CCTK_REAL const At33_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2176 | + CCTK_REAL const At33_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2177 | + CCTK_REAL const At33_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2178 | + CCTK_REAL const B1_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2179 | + CCTK_REAL const B1_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2180 | + CCTK_REAL const B1_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2181 | + CCTK_REAL const B2_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2182 | + CCTK_REAL const B2_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2183 | + CCTK_REAL const B2_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2184 | + CCTK_REAL const B3_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2185 | + CCTK_REAL const B3_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2186 | + CCTK_REAL const B3_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2187 | + CCTK_REAL const beta1_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2188 | + CCTK_REAL const beta1_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2189 | + CCTK_REAL const beta1_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2190 | + CCTK_REAL const beta2_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2191 | + CCTK_REAL const beta2_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2192 | + CCTK_REAL const beta2_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2193 | + CCTK_REAL const beta3_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2194 | + CCTK_REAL const beta3_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2195 | + CCTK_REAL const beta3_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2196 | + CCTK_REAL const BetaDriver CCTK_ATTRIBUTE_UNUSED = 1; \ |
2197 | + CCTK_REAL const EpsDiss CCTK_ATTRIBUTE_UNUSED = 0.20000000000000001; \ |
2198 | + CCTK_REAL const gt11_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2199 | + CCTK_REAL const gt11_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2200 | + CCTK_REAL const gt11_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2201 | + CCTK_REAL const gt12_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2202 | + CCTK_REAL const gt12_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2203 | + CCTK_REAL const gt12_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2204 | + CCTK_REAL const gt13_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2205 | + CCTK_REAL const gt13_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2206 | + CCTK_REAL const gt13_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2207 | + CCTK_REAL const gt22_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2208 | + CCTK_REAL const gt22_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2209 | + CCTK_REAL const gt22_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2210 | + CCTK_REAL const gt23_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2211 | + CCTK_REAL const gt23_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2212 | + CCTK_REAL const gt23_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2213 | + CCTK_REAL const gt33_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2214 | + CCTK_REAL const gt33_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2215 | + CCTK_REAL const gt33_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2216 | + CCTK_REAL const harmonicF CCTK_ATTRIBUTE_UNUSED = 2; \ |
2217 | + CCTK_REAL const LapseACoeff CCTK_ATTRIBUTE_UNUSED = 1; \ |
2218 | + CCTK_REAL const LapseAdvectionCoeff CCTK_ATTRIBUTE_UNUSED = 1; \ |
2219 | + CCTK_REAL const MinimumLapse CCTK_ATTRIBUTE_UNUSED = 1e-08; \ |
2220 | + CCTK_REAL const ML_curv_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2221 | + CCTK_REAL const ML_curv_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2222 | + CCTK_REAL const ML_curv_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2223 | + CCTK_REAL const ML_dtlapse_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2224 | + CCTK_REAL const ML_dtlapse_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2225 | + CCTK_REAL const ML_dtlapse_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2226 | + CCTK_REAL const ML_dtshift_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2227 | + CCTK_REAL const ML_dtshift_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2228 | + CCTK_REAL const ML_dtshift_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2229 | + CCTK_REAL const ML_Gamma_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2230 | + CCTK_REAL const ML_Gamma_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2231 | + CCTK_REAL const ML_Gamma_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2232 | + CCTK_REAL const ML_lapse_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2233 | + CCTK_REAL const ML_lapse_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2234 | + CCTK_REAL const ML_lapse_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2235 | + CCTK_REAL const ML_log_confac_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2236 | + CCTK_REAL const ML_log_confac_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2237 | + CCTK_REAL const ML_log_confac_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2238 | + CCTK_REAL const ML_metric_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2239 | + CCTK_REAL const ML_metric_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2240 | + CCTK_REAL const ML_metric_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2241 | + CCTK_REAL const ML_shift_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2242 | + CCTK_REAL const ML_shift_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2243 | + CCTK_REAL const ML_shift_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2244 | + CCTK_REAL const ML_trace_curv_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2245 | + CCTK_REAL const ML_trace_curv_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2246 | + CCTK_REAL const ML_trace_curv_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2247 | + CCTK_REAL const phi_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2248 | + CCTK_REAL const phi_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2249 | + CCTK_REAL const phi_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2250 | + CCTK_REAL const ShiftAdvectionCoeff CCTK_ATTRIBUTE_UNUSED = 1; \ |
2251 | + CCTK_REAL const ShiftBCoeff CCTK_ATTRIBUTE_UNUSED = 1; \ |
2252 | + CCTK_REAL const ShiftGammaCoeff CCTK_ATTRIBUTE_UNUSED = 0.75; \ |
2253 | + CCTK_REAL const SpatialBetaDriverRadius CCTK_ATTRIBUTE_UNUSED = 1000000000000; \ |
2254 | + CCTK_REAL const SpatialShiftGammaCoeffRadius CCTK_ATTRIBUTE_UNUSED = 1000000000000; \ |
2255 | + CCTK_REAL const trK_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2256 | + CCTK_REAL const trK_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2257 | + CCTK_REAL const trK_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2258 | + CCTK_REAL const Xt1_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2259 | + CCTK_REAL const Xt1_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2260 | + CCTK_REAL const Xt1_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2261 | + CCTK_REAL const Xt2_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2262 | + CCTK_REAL const Xt2_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2263 | + CCTK_REAL const Xt2_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2264 | + CCTK_REAL const Xt3_bound_limit CCTK_ATTRIBUTE_UNUSED = 0; \ |
2265 | + CCTK_REAL const Xt3_bound_scalar CCTK_ATTRIBUTE_UNUSED = 0; \ |
2266 | + CCTK_REAL const Xt3_bound_speed CCTK_ATTRIBUTE_UNUSED = 1; \ |
2267 | + CCTK_INT const conformalMethod CCTK_ATTRIBUTE_UNUSED = 0; \ |
2268 | + CCTK_INT const fdOrder CCTK_ATTRIBUTE_UNUSED = 4; \ |
2269 | + CCTK_INT const harmonicN CCTK_ATTRIBUTE_UNUSED = 1; \ |
2270 | + CCTK_INT const harmonicShift CCTK_ATTRIBUTE_UNUSED = 0; \ |
2271 | + CCTK_INT const ML_BSSN_CL_Advect_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2272 | + CCTK_INT const ML_BSSN_CL_Advect_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2273 | + CCTK_INT const ML_BSSN_CL_boundary_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2274 | + CCTK_INT const ML_BSSN_CL_boundary_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2275 | + CCTK_INT const ML_BSSN_CL_constraints1_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2276 | + CCTK_INT const ML_BSSN_CL_constraints1_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2277 | + CCTK_INT const ML_BSSN_CL_constraints2_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2278 | + CCTK_INT const ML_BSSN_CL_constraints2_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2279 | + CCTK_INT const ML_BSSN_CL_convertFromADMBase_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2280 | + CCTK_INT const ML_BSSN_CL_convertFromADMBase_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2281 | + CCTK_INT const ML_BSSN_CL_convertFromADMBaseGamma_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2282 | + CCTK_INT const ML_BSSN_CL_convertFromADMBaseGamma_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2283 | + CCTK_INT const ML_BSSN_CL_convertToADMBase_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2284 | + CCTK_INT const ML_BSSN_CL_convertToADMBase_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2285 | + CCTK_INT const ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2286 | + CCTK_INT const ML_BSSN_CL_convertToADMBaseDtLapseShift_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2287 | + CCTK_INT const ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2288 | + CCTK_INT const ML_BSSN_CL_convertToADMBaseDtLapseShiftBoundary_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2289 | + CCTK_INT const ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2290 | + CCTK_INT const ML_BSSN_CL_convertToADMBaseFakeDtLapseShift_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2291 | + CCTK_INT const ML_BSSN_CL_Dissipation_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2292 | + CCTK_INT const ML_BSSN_CL_Dissipation_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2293 | + CCTK_INT const ML_BSSN_CL_enforce_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2294 | + CCTK_INT const ML_BSSN_CL_enforce_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2295 | + CCTK_INT const ML_BSSN_CL_InitGamma_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2296 | + CCTK_INT const ML_BSSN_CL_InitGamma_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2297 | + CCTK_INT const ML_BSSN_CL_InitRHS_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2298 | + CCTK_INT const ML_BSSN_CL_InitRHS_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2299 | + CCTK_INT const ML_BSSN_CL_MaxNumArrayEvolvedVars CCTK_ATTRIBUTE_UNUSED = 0; \ |
2300 | + CCTK_INT const ML_BSSN_CL_MaxNumEvolvedVars CCTK_ATTRIBUTE_UNUSED = 25; \ |
2301 | + CCTK_INT const ML_BSSN_CL_Minkowski_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2302 | + CCTK_INT const ML_BSSN_CL_Minkowski_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2303 | + CCTK_INT const ML_BSSN_CL_RHS1_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2304 | + CCTK_INT const ML_BSSN_CL_RHS1_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2305 | + CCTK_INT const ML_BSSN_CL_RHS2_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2306 | + CCTK_INT const ML_BSSN_CL_RHS2_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2307 | + CCTK_INT const ML_BSSN_CL_RHSStaticBoundary_calc_every CCTK_ATTRIBUTE_UNUSED = 1; \ |
2308 | + CCTK_INT const ML_BSSN_CL_RHSStaticBoundary_calc_offset CCTK_ATTRIBUTE_UNUSED = 0; \ |
2309 | + CCTK_INT const other_timelevels CCTK_ATTRIBUTE_UNUSED = 1; \ |
2310 | + CCTK_INT const rhs_timelevels CCTK_ATTRIBUTE_UNUSED = 1; \ |
2311 | + CCTK_INT const ShiftAlphaPower CCTK_ATTRIBUTE_UNUSED = 0; \ |
2312 | + CCTK_INT const timelevels CCTK_ATTRIBUTE_UNUSED = 3; \ |
2313 | + CCTK_INT const verbose CCTK_ATTRIBUTE_UNUSED = 0; |
2314 | + |
2315 | +// Kranc's FD operators: |
2316 | +#ifndef KRANC_DIFF_FUNCTIONS |
2317 | +# define PDstandardNthfdOrder21(u) (kmul(p1o2dx,ksub(KRANC_GFOFFSET3D(u,1,0,0),KRANC_GFOFFSET3D(u,-1,0,0)))) |
2318 | +#else |
2319 | +# define PDstandardNthfdOrder21(u) (PDstandardNthfdOrder21_impl(u,p1o2dx,cdj,cdk)) |
2320 | +static CCTK_REAL_VEC PDstandardNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2321 | +static CCTK_REAL_VEC PDstandardNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2322 | +{ |
2323 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2324 | + return kmul(p1o2dx,ksub(KRANC_GFOFFSET3D(u,1,0,0),KRANC_GFOFFSET3D(u,-1,0,0))); |
2325 | +} |
2326 | +#endif |
2327 | + |
2328 | +#ifndef KRANC_DIFF_FUNCTIONS |
2329 | +# define PDstandardNthfdOrder22(u) (kmul(p1o2dy,ksub(KRANC_GFOFFSET3D(u,0,1,0),KRANC_GFOFFSET3D(u,0,-1,0)))) |
2330 | +#else |
2331 | +# define PDstandardNthfdOrder22(u) (PDstandardNthfdOrder22_impl(u,p1o2dy,cdj,cdk)) |
2332 | +static CCTK_REAL_VEC PDstandardNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2333 | +static CCTK_REAL_VEC PDstandardNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2334 | +{ |
2335 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2336 | + return kmul(p1o2dy,ksub(KRANC_GFOFFSET3D(u,0,1,0),KRANC_GFOFFSET3D(u,0,-1,0))); |
2337 | +} |
2338 | +#endif |
2339 | + |
2340 | +#ifndef KRANC_DIFF_FUNCTIONS |
2341 | +# define PDstandardNthfdOrder23(u) (kmul(p1o2dz,ksub(KRANC_GFOFFSET3D(u,0,0,1),KRANC_GFOFFSET3D(u,0,0,-1)))) |
2342 | +#else |
2343 | +# define PDstandardNthfdOrder23(u) (PDstandardNthfdOrder23_impl(u,p1o2dz,cdj,cdk)) |
2344 | +static CCTK_REAL_VEC PDstandardNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2345 | +static CCTK_REAL_VEC PDstandardNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2346 | +{ |
2347 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2348 | + return kmul(p1o2dz,ksub(KRANC_GFOFFSET3D(u,0,0,1),KRANC_GFOFFSET3D(u,0,0,-1))); |
2349 | +} |
2350 | +#endif |
2351 | + |
2352 | +#ifndef KRANC_DIFF_FUNCTIONS |
2353 | +# define PDstandardNthfdOrder41(u) (kmul(p1o12dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(8),KRANC_GFOFFSET3D(u,2,0,0)))))) |
2354 | +#else |
2355 | +# define PDstandardNthfdOrder41(u) (PDstandardNthfdOrder41_impl(u,p1o12dx,cdj,cdk)) |
2356 | +static CCTK_REAL_VEC PDstandardNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2357 | +static CCTK_REAL_VEC PDstandardNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2358 | +{ |
2359 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2360 | + return kmul(p1o12dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(8),KRANC_GFOFFSET3D(u,2,0,0))))); |
2361 | +} |
2362 | +#endif |
2363 | + |
2364 | +#ifndef KRANC_DIFF_FUNCTIONS |
2365 | +# define PDstandardNthfdOrder42(u) (kmul(p1o12dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(8),KRANC_GFOFFSET3D(u,0,2,0)))))) |
2366 | +#else |
2367 | +# define PDstandardNthfdOrder42(u) (PDstandardNthfdOrder42_impl(u,p1o12dy,cdj,cdk)) |
2368 | +static CCTK_REAL_VEC PDstandardNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2369 | +static CCTK_REAL_VEC PDstandardNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2370 | +{ |
2371 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2372 | + return kmul(p1o12dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(8),KRANC_GFOFFSET3D(u,0,2,0))))); |
2373 | +} |
2374 | +#endif |
2375 | + |
2376 | +#ifndef KRANC_DIFF_FUNCTIONS |
2377 | +# define PDstandardNthfdOrder43(u) (kmul(p1o12dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(8),KRANC_GFOFFSET3D(u,0,0,2)))))) |
2378 | +#else |
2379 | +# define PDstandardNthfdOrder43(u) (PDstandardNthfdOrder43_impl(u,p1o12dz,cdj,cdk)) |
2380 | +static CCTK_REAL_VEC PDstandardNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2381 | +static CCTK_REAL_VEC PDstandardNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2382 | +{ |
2383 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2384 | + return kmul(p1o12dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-8),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(8),KRANC_GFOFFSET3D(u,0,0,2))))); |
2385 | +} |
2386 | +#endif |
2387 | + |
2388 | +#ifndef KRANC_DIFF_FUNCTIONS |
2389 | +# define PDstandardNthfdOrder61(u) (kmul(p1o60dx,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(45))),KRANC_GFOFFSET3D(u,-3,0,0))))))) |
2390 | +#else |
2391 | +# define PDstandardNthfdOrder61(u) (PDstandardNthfdOrder61_impl(u,p1o60dx,cdj,cdk)) |
2392 | +static CCTK_REAL_VEC PDstandardNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2393 | +static CCTK_REAL_VEC PDstandardNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2394 | +{ |
2395 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2396 | + return kmul(p1o60dx,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(45))),KRANC_GFOFFSET3D(u,-3,0,0)))))); |
2397 | +} |
2398 | +#endif |
2399 | + |
2400 | +#ifndef KRANC_DIFF_FUNCTIONS |
2401 | +# define PDstandardNthfdOrder62(u) (kmul(p1o60dy,kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(45))),KRANC_GFOFFSET3D(u,0,-3,0))))))) |
2402 | +#else |
2403 | +# define PDstandardNthfdOrder62(u) (PDstandardNthfdOrder62_impl(u,p1o60dy,cdj,cdk)) |
2404 | +static CCTK_REAL_VEC PDstandardNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2405 | +static CCTK_REAL_VEC PDstandardNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2406 | +{ |
2407 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2408 | + return kmul(p1o60dy,kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(45))),KRANC_GFOFFSET3D(u,0,-3,0)))))); |
2409 | +} |
2410 | +#endif |
2411 | + |
2412 | +#ifndef KRANC_DIFF_FUNCTIONS |
2413 | +# define PDstandardNthfdOrder63(u) (kmul(p1o60dz,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(45))),KRANC_GFOFFSET3D(u,0,0,-3))))))) |
2414 | +#else |
2415 | +# define PDstandardNthfdOrder63(u) (PDstandardNthfdOrder63_impl(u,p1o60dz,cdj,cdk)) |
2416 | +static CCTK_REAL_VEC PDstandardNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2417 | +static CCTK_REAL_VEC PDstandardNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2418 | +{ |
2419 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2420 | + return kmul(p1o60dz,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-45),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-9),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(9),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(45))),KRANC_GFOFFSET3D(u,0,0,-3)))))); |
2421 | +} |
2422 | +#endif |
2423 | + |
2424 | +#ifndef KRANC_DIFF_FUNCTIONS |
2425 | +# define PDstandardNthfdOrder81(u) (kmul(p1o840dx,kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(672))))))))))) |
2426 | +#else |
2427 | +# define PDstandardNthfdOrder81(u) (PDstandardNthfdOrder81_impl(u,p1o840dx,cdj,cdk)) |
2428 | +static CCTK_REAL_VEC PDstandardNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2429 | +static CCTK_REAL_VEC PDstandardNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2430 | +{ |
2431 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2432 | + return kmul(p1o840dx,kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(672)))))))))); |
2433 | +} |
2434 | +#endif |
2435 | + |
2436 | +#ifndef KRANC_DIFF_FUNCTIONS |
2437 | +# define PDstandardNthfdOrder82(u) (kmul(p1o840dy,kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(672))))))))))) |
2438 | +#else |
2439 | +# define PDstandardNthfdOrder82(u) (PDstandardNthfdOrder82_impl(u,p1o840dy,cdj,cdk)) |
2440 | +static CCTK_REAL_VEC PDstandardNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2441 | +static CCTK_REAL_VEC PDstandardNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2442 | +{ |
2443 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2444 | + return kmul(p1o840dy,kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(672)))))))))); |
2445 | +} |
2446 | +#endif |
2447 | + |
2448 | +#ifndef KRANC_DIFF_FUNCTIONS |
2449 | +# define PDstandardNthfdOrder83(u) (kmul(p1o840dz,kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(672))))))))))) |
2450 | +#else |
2451 | +# define PDstandardNthfdOrder83(u) (PDstandardNthfdOrder83_impl(u,p1o840dz,cdj,cdk)) |
2452 | +static CCTK_REAL_VEC PDstandardNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2453 | +static CCTK_REAL_VEC PDstandardNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2454 | +{ |
2455 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2456 | + return kmul(p1o840dz,kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-672),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-168),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(32),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(168),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(672)))))))))); |
2457 | +} |
2458 | +#endif |
2459 | + |
2460 | +#ifndef KRANC_DIFF_FUNCTIONS |
2461 | +# define PDstandardNthfdOrder211(u) (kmul(p1odx2,kadd(KRANC_GFOFFSET3D(u,-1,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,1,0,0))))) |
2462 | +#else |
2463 | +# define PDstandardNthfdOrder211(u) (PDstandardNthfdOrder211_impl(u,p1odx2,cdj,cdk)) |
2464 | +static CCTK_REAL_VEC PDstandardNthfdOrder211_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2465 | +static CCTK_REAL_VEC PDstandardNthfdOrder211_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2466 | +{ |
2467 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2468 | + return kmul(p1odx2,kadd(KRANC_GFOFFSET3D(u,-1,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,1,0,0)))); |
2469 | +} |
2470 | +#endif |
2471 | + |
2472 | +#ifndef KRANC_DIFF_FUNCTIONS |
2473 | +# define PDstandardNthfdOrder222(u) (kmul(p1ody2,kadd(KRANC_GFOFFSET3D(u,0,-1,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,1,0))))) |
2474 | +#else |
2475 | +# define PDstandardNthfdOrder222(u) (PDstandardNthfdOrder222_impl(u,p1ody2,cdj,cdk)) |
2476 | +static CCTK_REAL_VEC PDstandardNthfdOrder222_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2477 | +static CCTK_REAL_VEC PDstandardNthfdOrder222_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2478 | +{ |
2479 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2480 | + return kmul(p1ody2,kadd(KRANC_GFOFFSET3D(u,0,-1,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,1,0)))); |
2481 | +} |
2482 | +#endif |
2483 | + |
2484 | +#ifndef KRANC_DIFF_FUNCTIONS |
2485 | +# define PDstandardNthfdOrder233(u) (kmul(p1odz2,kadd(KRANC_GFOFFSET3D(u,0,0,-1),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,0,1))))) |
2486 | +#else |
2487 | +# define PDstandardNthfdOrder233(u) (PDstandardNthfdOrder233_impl(u,p1odz2,cdj,cdk)) |
2488 | +static CCTK_REAL_VEC PDstandardNthfdOrder233_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2489 | +static CCTK_REAL_VEC PDstandardNthfdOrder233_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2490 | +{ |
2491 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2492 | + return kmul(p1odz2,kadd(KRANC_GFOFFSET3D(u,0,0,-1),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-2),KRANC_GFOFFSET3D(u,0,0,1)))); |
2493 | +} |
2494 | +#endif |
2495 | + |
2496 | +#ifndef KRANC_DIFF_FUNCTIONS |
2497 | +# define PDstandardNthfdOrder411(u) (kmul(pm1o12dx2,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30))))))) |
2498 | +#else |
2499 | +# define PDstandardNthfdOrder411(u) (PDstandardNthfdOrder411_impl(u,pm1o12dx2,cdj,cdk)) |
2500 | +static CCTK_REAL_VEC PDstandardNthfdOrder411_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2501 | +static CCTK_REAL_VEC PDstandardNthfdOrder411_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2502 | +{ |
2503 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2504 | + return kmul(pm1o12dx2,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30)))))); |
2505 | +} |
2506 | +#endif |
2507 | + |
2508 | +#ifndef KRANC_DIFF_FUNCTIONS |
2509 | +# define PDstandardNthfdOrder422(u) (kmul(pm1o12dy2,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30))))))) |
2510 | +#else |
2511 | +# define PDstandardNthfdOrder422(u) (PDstandardNthfdOrder422_impl(u,pm1o12dy2,cdj,cdk)) |
2512 | +static CCTK_REAL_VEC PDstandardNthfdOrder422_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2513 | +static CCTK_REAL_VEC PDstandardNthfdOrder422_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2514 | +{ |
2515 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2516 | + return kmul(pm1o12dy2,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30)))))); |
2517 | +} |
2518 | +#endif |
2519 | + |
2520 | +#ifndef KRANC_DIFF_FUNCTIONS |
2521 | +# define PDstandardNthfdOrder433(u) (kmul(pm1o12dz2,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30))))))) |
2522 | +#else |
2523 | +# define PDstandardNthfdOrder433(u) (PDstandardNthfdOrder433_impl(u,pm1o12dz2,cdj,cdk)) |
2524 | +static CCTK_REAL_VEC PDstandardNthfdOrder433_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2525 | +static CCTK_REAL_VEC PDstandardNthfdOrder433_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o12dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2526 | +{ |
2527 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2528 | + return kmul(pm1o12dz2,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-16),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(30)))))); |
2529 | +} |
2530 | +#endif |
2531 | + |
2532 | +#ifndef KRANC_DIFF_FUNCTIONS |
2533 | +# define PDstandardNthfdOrder611(u) (kmul(p1o180dx2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(270))))))) |
2534 | +#else |
2535 | +# define PDstandardNthfdOrder611(u) (PDstandardNthfdOrder611_impl(u,p1o180dx2,cdj,cdk)) |
2536 | +static CCTK_REAL_VEC PDstandardNthfdOrder611_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2537 | +static CCTK_REAL_VEC PDstandardNthfdOrder611_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2538 | +{ |
2539 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2540 | + return kmul(p1o180dx2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(270)))))); |
2541 | +} |
2542 | +#endif |
2543 | + |
2544 | +#ifndef KRANC_DIFF_FUNCTIONS |
2545 | +# define PDstandardNthfdOrder622(u) (kmul(p1o180dy2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(270))))))) |
2546 | +#else |
2547 | +# define PDstandardNthfdOrder622(u) (PDstandardNthfdOrder622_impl(u,p1o180dy2,cdj,cdk)) |
2548 | +static CCTK_REAL_VEC PDstandardNthfdOrder622_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2549 | +static CCTK_REAL_VEC PDstandardNthfdOrder622_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2550 | +{ |
2551 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2552 | + return kmul(p1o180dy2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(270)))))); |
2553 | +} |
2554 | +#endif |
2555 | + |
2556 | +#ifndef KRANC_DIFF_FUNCTIONS |
2557 | +# define PDstandardNthfdOrder633(u) (kmul(p1o180dz2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(270))))))) |
2558 | +#else |
2559 | +# define PDstandardNthfdOrder633(u) (PDstandardNthfdOrder633_impl(u,p1o180dz2,cdj,cdk)) |
2560 | +static CCTK_REAL_VEC PDstandardNthfdOrder633_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2561 | +static CCTK_REAL_VEC PDstandardNthfdOrder633_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o180dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2562 | +{ |
2563 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2564 | + return kmul(p1o180dz2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-490),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-27),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(2),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(270)))))); |
2565 | +} |
2566 | +#endif |
2567 | + |
2568 | +#ifndef KRANC_DIFF_FUNCTIONS |
2569 | +# define PDstandardNthfdOrder811(u) (kmul(p1o5040dx2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(8064)))))))) |
2570 | +#else |
2571 | +# define PDstandardNthfdOrder811(u) (PDstandardNthfdOrder811_impl(u,p1o5040dx2,cdj,cdk)) |
2572 | +static CCTK_REAL_VEC PDstandardNthfdOrder811_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2573 | +static CCTK_REAL_VEC PDstandardNthfdOrder811_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dx2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2574 | +{ |
2575 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2576 | + return kmul(p1o5040dx2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(8064))))))); |
2577 | +} |
2578 | +#endif |
2579 | + |
2580 | +#ifndef KRANC_DIFF_FUNCTIONS |
2581 | +# define PDstandardNthfdOrder822(u) (kmul(p1o5040dy2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(8064)))))))) |
2582 | +#else |
2583 | +# define PDstandardNthfdOrder822(u) (PDstandardNthfdOrder822_impl(u,p1o5040dy2,cdj,cdk)) |
2584 | +static CCTK_REAL_VEC PDstandardNthfdOrder822_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2585 | +static CCTK_REAL_VEC PDstandardNthfdOrder822_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dy2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2586 | +{ |
2587 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2588 | + return kmul(p1o5040dy2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(8064))))))); |
2589 | +} |
2590 | +#endif |
2591 | + |
2592 | +#ifndef KRANC_DIFF_FUNCTIONS |
2593 | +# define PDstandardNthfdOrder833(u) (kmul(p1o5040dz2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(8064)))))))) |
2594 | +#else |
2595 | +# define PDstandardNthfdOrder833(u) (PDstandardNthfdOrder833_impl(u,p1o5040dz2,cdj,cdk)) |
2596 | +static CCTK_REAL_VEC PDstandardNthfdOrder833_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2597 | +static CCTK_REAL_VEC PDstandardNthfdOrder833_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o5040dz2, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2598 | +{ |
2599 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2600 | + return kmul(p1o5040dz2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-14350),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-1008),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(128),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(8064))))))); |
2601 | +} |
2602 | +#endif |
2603 | + |
2604 | +#ifndef KRANC_DIFF_FUNCTIONS |
2605 | +# define PDstandardNthfdOrder212(u) (kmul(p1o4dxdy,kadd(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,0)))))) |
2606 | +#else |
2607 | +# define PDstandardNthfdOrder212(u) (PDstandardNthfdOrder212_impl(u,p1o4dxdy,cdj,cdk)) |
2608 | +static CCTK_REAL_VEC PDstandardNthfdOrder212_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2609 | +static CCTK_REAL_VEC PDstandardNthfdOrder212_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2610 | +{ |
2611 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2612 | + return kmul(p1o4dxdy,kadd(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,0))))); |
2613 | +} |
2614 | +#endif |
2615 | + |
2616 | +#ifndef KRANC_DIFF_FUNCTIONS |
2617 | +# define PDstandardNthfdOrder213(u) (kmul(p1o4dxdz,kadd(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,1)))))) |
2618 | +#else |
2619 | +# define PDstandardNthfdOrder213(u) (PDstandardNthfdOrder213_impl(u,p1o4dxdz,cdj,cdk)) |
2620 | +static CCTK_REAL_VEC PDstandardNthfdOrder213_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2621 | +static CCTK_REAL_VEC PDstandardNthfdOrder213_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2622 | +{ |
2623 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2624 | + return kmul(p1o4dxdz,kadd(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,1))))); |
2625 | +} |
2626 | +#endif |
2627 | + |
2628 | +#ifndef KRANC_DIFF_FUNCTIONS |
2629 | +# define PDstandardNthfdOrder221(u) (kmul(p1o4dxdy,kadd(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,0)))))) |
2630 | +#else |
2631 | +# define PDstandardNthfdOrder221(u) (PDstandardNthfdOrder221_impl(u,p1o4dxdy,cdj,cdk)) |
2632 | +static CCTK_REAL_VEC PDstandardNthfdOrder221_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2633 | +static CCTK_REAL_VEC PDstandardNthfdOrder221_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2634 | +{ |
2635 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2636 | + return kmul(p1o4dxdy,kadd(KRANC_GFOFFSET3D(u,-1,-1,0),ksub(KRANC_GFOFFSET3D(u,1,1,0),kadd(KRANC_GFOFFSET3D(u,1,-1,0),KRANC_GFOFFSET3D(u,-1,1,0))))); |
2637 | +} |
2638 | +#endif |
2639 | + |
2640 | +#ifndef KRANC_DIFF_FUNCTIONS |
2641 | +# define PDstandardNthfdOrder223(u) (kmul(p1o4dydz,kadd(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,1)))))) |
2642 | +#else |
2643 | +# define PDstandardNthfdOrder223(u) (PDstandardNthfdOrder223_impl(u,p1o4dydz,cdj,cdk)) |
2644 | +static CCTK_REAL_VEC PDstandardNthfdOrder223_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2645 | +static CCTK_REAL_VEC PDstandardNthfdOrder223_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2646 | +{ |
2647 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2648 | + return kmul(p1o4dydz,kadd(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,1))))); |
2649 | +} |
2650 | +#endif |
2651 | + |
2652 | +#ifndef KRANC_DIFF_FUNCTIONS |
2653 | +# define PDstandardNthfdOrder231(u) (kmul(p1o4dxdz,kadd(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,1)))))) |
2654 | +#else |
2655 | +# define PDstandardNthfdOrder231(u) (PDstandardNthfdOrder231_impl(u,p1o4dxdz,cdj,cdk)) |
2656 | +static CCTK_REAL_VEC PDstandardNthfdOrder231_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2657 | +static CCTK_REAL_VEC PDstandardNthfdOrder231_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2658 | +{ |
2659 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2660 | + return kmul(p1o4dxdz,kadd(KRANC_GFOFFSET3D(u,-1,0,-1),ksub(KRANC_GFOFFSET3D(u,1,0,1),kadd(KRANC_GFOFFSET3D(u,1,0,-1),KRANC_GFOFFSET3D(u,-1,0,1))))); |
2661 | +} |
2662 | +#endif |
2663 | + |
2664 | +#ifndef KRANC_DIFF_FUNCTIONS |
2665 | +# define PDstandardNthfdOrder232(u) (kmul(p1o4dydz,kadd(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,1)))))) |
2666 | +#else |
2667 | +# define PDstandardNthfdOrder232(u) (PDstandardNthfdOrder232_impl(u,p1o4dydz,cdj,cdk)) |
2668 | +static CCTK_REAL_VEC PDstandardNthfdOrder232_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2669 | +static CCTK_REAL_VEC PDstandardNthfdOrder232_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2670 | +{ |
2671 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2672 | + return kmul(p1o4dydz,kadd(KRANC_GFOFFSET3D(u,0,-1,-1),ksub(KRANC_GFOFFSET3D(u,0,1,1),kadd(KRANC_GFOFFSET3D(u,0,1,-1),KRANC_GFOFFSET3D(u,0,-1,1))))); |
2673 | +} |
2674 | +#endif |
2675 | + |
2676 | +#ifndef KRANC_DIFF_FUNCTIONS |
2677 | +# define PDstandardNthfdOrder412(u) (kmul(p1o144dxdy,kadd(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,0)))))))) |
2678 | +#else |
2679 | +# define PDstandardNthfdOrder412(u) (PDstandardNthfdOrder412_impl(u,p1o144dxdy,cdj,cdk)) |
2680 | +static CCTK_REAL_VEC PDstandardNthfdOrder412_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2681 | +static CCTK_REAL_VEC PDstandardNthfdOrder412_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2682 | +{ |
2683 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2684 | + return kmul(p1o144dxdy,kadd(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,0))))))); |
2685 | +} |
2686 | +#endif |
2687 | + |
2688 | +#ifndef KRANC_DIFF_FUNCTIONS |
2689 | +# define PDstandardNthfdOrder413(u) (kmul(p1o144dxdz,kadd(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2)))))))) |
2690 | +#else |
2691 | +# define PDstandardNthfdOrder413(u) (PDstandardNthfdOrder413_impl(u,p1o144dxdz,cdj,cdk)) |
2692 | +static CCTK_REAL_VEC PDstandardNthfdOrder413_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2693 | +static CCTK_REAL_VEC PDstandardNthfdOrder413_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2694 | +{ |
2695 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2696 | + return kmul(p1o144dxdz,kadd(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2))))))); |
2697 | +} |
2698 | +#endif |
2699 | + |
2700 | +#ifndef KRANC_DIFF_FUNCTIONS |
2701 | +# define PDstandardNthfdOrder421(u) (kmul(p1o144dxdy,kadd(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,0)))))))) |
2702 | +#else |
2703 | +# define PDstandardNthfdOrder421(u) (PDstandardNthfdOrder421_impl(u,p1o144dxdy,cdj,cdk)) |
2704 | +static CCTK_REAL_VEC PDstandardNthfdOrder421_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2705 | +static CCTK_REAL_VEC PDstandardNthfdOrder421_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2706 | +{ |
2707 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2708 | + return kmul(p1o144dxdy,kadd(KRANC_GFOFFSET3D(u,-2,-2,0),kadd(KRANC_GFOFFSET3D(u,2,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(64))),KRANC_GFOFFSET3D(u,2,-2,0)),KRANC_GFOFFSET3D(u,-2,2,0))))))); |
2709 | +} |
2710 | +#endif |
2711 | + |
2712 | +#ifndef KRANC_DIFF_FUNCTIONS |
2713 | +# define PDstandardNthfdOrder423(u) (kmul(p1o144dydz,kadd(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2)))))))) |
2714 | +#else |
2715 | +# define PDstandardNthfdOrder423(u) (PDstandardNthfdOrder423_impl(u,p1o144dydz,cdj,cdk)) |
2716 | +static CCTK_REAL_VEC PDstandardNthfdOrder423_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2717 | +static CCTK_REAL_VEC PDstandardNthfdOrder423_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2718 | +{ |
2719 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2720 | + return kmul(p1o144dydz,kadd(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2))))))); |
2721 | +} |
2722 | +#endif |
2723 | + |
2724 | +#ifndef KRANC_DIFF_FUNCTIONS |
2725 | +# define PDstandardNthfdOrder431(u) (kmul(p1o144dxdz,kadd(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2)))))))) |
2726 | +#else |
2727 | +# define PDstandardNthfdOrder431(u) (PDstandardNthfdOrder431_impl(u,p1o144dxdz,cdj,cdk)) |
2728 | +static CCTK_REAL_VEC PDstandardNthfdOrder431_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2729 | +static CCTK_REAL_VEC PDstandardNthfdOrder431_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2730 | +{ |
2731 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2732 | + return kmul(p1o144dxdz,kadd(KRANC_GFOFFSET3D(u,-2,0,-2),kadd(KRANC_GFOFFSET3D(u,2,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(64))),KRANC_GFOFFSET3D(u,2,0,-2)),KRANC_GFOFFSET3D(u,-2,0,2))))))); |
2733 | +} |
2734 | +#endif |
2735 | + |
2736 | +#ifndef KRANC_DIFF_FUNCTIONS |
2737 | +# define PDstandardNthfdOrder432(u) (kmul(p1o144dydz,kadd(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2)))))))) |
2738 | +#else |
2739 | +# define PDstandardNthfdOrder432(u) (PDstandardNthfdOrder432_impl(u,p1o144dydz,cdj,cdk)) |
2740 | +static CCTK_REAL_VEC PDstandardNthfdOrder432_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2741 | +static CCTK_REAL_VEC PDstandardNthfdOrder432_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o144dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2742 | +{ |
2743 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2744 | + return kmul(p1o144dydz,kadd(KRANC_GFOFFSET3D(u,0,-2,-2),kadd(KRANC_GFOFFSET3D(u,0,2,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-64),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-8),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(8),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(64))),KRANC_GFOFFSET3D(u,0,2,-2)),KRANC_GFOFFSET3D(u,0,-2,2))))))); |
2745 | +} |
2746 | +#endif |
2747 | + |
2748 | +#ifndef KRANC_DIFF_FUNCTIONS |
2749 | +# define PDstandardNthfdOrder612(u) (kmul(p1o3600dxdy,kadd(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,0))))))))))) |
2750 | +#else |
2751 | +# define PDstandardNthfdOrder612(u) (PDstandardNthfdOrder612_impl(u,p1o3600dxdy,cdj,cdk)) |
2752 | +static CCTK_REAL_VEC PDstandardNthfdOrder612_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2753 | +static CCTK_REAL_VEC PDstandardNthfdOrder612_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2754 | +{ |
2755 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2756 | + return kmul(p1o3600dxdy,kadd(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,0)))))))))); |
2757 | +} |
2758 | +#endif |
2759 | + |
2760 | +#ifndef KRANC_DIFF_FUNCTIONS |
2761 | +# define PDstandardNthfdOrder613(u) (kmul(p1o3600dxdz,kadd(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,3))))))))))) |
2762 | +#else |
2763 | +# define PDstandardNthfdOrder613(u) (PDstandardNthfdOrder613_impl(u,p1o3600dxdz,cdj,cdk)) |
2764 | +static CCTK_REAL_VEC PDstandardNthfdOrder613_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2765 | +static CCTK_REAL_VEC PDstandardNthfdOrder613_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2766 | +{ |
2767 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2768 | + return kmul(p1o3600dxdz,kadd(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,3)))))))))); |
2769 | +} |
2770 | +#endif |
2771 | + |
2772 | +#ifndef KRANC_DIFF_FUNCTIONS |
2773 | +# define PDstandardNthfdOrder621(u) (kmul(p1o3600dxdy,kadd(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,0))))))))))) |
2774 | +#else |
2775 | +# define PDstandardNthfdOrder621(u) (PDstandardNthfdOrder621_impl(u,p1o3600dxdy,cdj,cdk)) |
2776 | +static CCTK_REAL_VEC PDstandardNthfdOrder621_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2777 | +static CCTK_REAL_VEC PDstandardNthfdOrder621_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2778 | +{ |
2779 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2780 | + return kmul(p1o3600dxdy,kadd(KRANC_GFOFFSET3D(u,-3,-3,0),kadd(KRANC_GFOFFSET3D(u,3,3,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,-3,0)),KRANC_GFOFFSET3D(u,-3,3,0)))))))))); |
2781 | +} |
2782 | +#endif |
2783 | + |
2784 | +#ifndef KRANC_DIFF_FUNCTIONS |
2785 | +# define PDstandardNthfdOrder623(u) (kmul(p1o3600dydz,kadd(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,3))))))))))) |
2786 | +#else |
2787 | +# define PDstandardNthfdOrder623(u) (PDstandardNthfdOrder623_impl(u,p1o3600dydz,cdj,cdk)) |
2788 | +static CCTK_REAL_VEC PDstandardNthfdOrder623_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2789 | +static CCTK_REAL_VEC PDstandardNthfdOrder623_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2790 | +{ |
2791 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2792 | + return kmul(p1o3600dydz,kadd(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,3)))))))))); |
2793 | +} |
2794 | +#endif |
2795 | + |
2796 | +#ifndef KRANC_DIFF_FUNCTIONS |
2797 | +# define PDstandardNthfdOrder631(u) (kmul(p1o3600dxdz,kadd(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,3))))))))))) |
2798 | +#else |
2799 | +# define PDstandardNthfdOrder631(u) (PDstandardNthfdOrder631_impl(u,p1o3600dxdz,cdj,cdk)) |
2800 | +static CCTK_REAL_VEC PDstandardNthfdOrder631_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2801 | +static CCTK_REAL_VEC PDstandardNthfdOrder631_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2802 | +{ |
2803 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2804 | + return kmul(p1o3600dxdz,kadd(KRANC_GFOFFSET3D(u,-3,0,-3),kadd(KRANC_GFOFFSET3D(u,3,0,3),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,3,0,-3)),KRANC_GFOFFSET3D(u,-3,0,3)))))))))); |
2805 | +} |
2806 | +#endif |
2807 | + |
2808 | +#ifndef KRANC_DIFF_FUNCTIONS |
2809 | +# define PDstandardNthfdOrder632(u) (kmul(p1o3600dydz,kadd(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,3))))))))))) |
2810 | +#else |
2811 | +# define PDstandardNthfdOrder632(u) (PDstandardNthfdOrder632_impl(u,p1o3600dydz,cdj,cdk)) |
2812 | +static CCTK_REAL_VEC PDstandardNthfdOrder632_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2813 | +static CCTK_REAL_VEC PDstandardNthfdOrder632_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o3600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2814 | +{ |
2815 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2816 | + return kmul(p1o3600dydz,kadd(KRANC_GFOFFSET3D(u,0,-3,-3),kadd(KRANC_GFOFFSET3D(u,0,3,3),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-2025),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-405),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-9),ksub(ksub(kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(45),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(81),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(405),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(2025)))))),KRANC_GFOFFSET3D(u,0,3,-3)),KRANC_GFOFFSET3D(u,0,-3,3)))))))))); |
2817 | +} |
2818 | +#endif |
2819 | + |
2820 | +#ifndef KRANC_DIFF_FUNCTIONS |
2821 | +# define PDstandardNthfdOrder812(u) (kmul(p1o705600dxdy,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(451584))))))))))))))))))))))) |
2822 | +#else |
2823 | +# define PDstandardNthfdOrder812(u) (PDstandardNthfdOrder812_impl(u,p1o705600dxdy,cdj,cdk)) |
2824 | +static CCTK_REAL_VEC PDstandardNthfdOrder812_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2825 | +static CCTK_REAL_VEC PDstandardNthfdOrder812_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2826 | +{ |
2827 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2828 | + return kmul(p1o705600dxdy,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(451584)))))))))))))))))))))); |
2829 | +} |
2830 | +#endif |
2831 | + |
2832 | +#ifndef KRANC_DIFF_FUNCTIONS |
2833 | +# define PDstandardNthfdOrder813(u) (kmul(p1o705600dxdz,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(451584))))))))))))))))))))))) |
2834 | +#else |
2835 | +# define PDstandardNthfdOrder813(u) (PDstandardNthfdOrder813_impl(u,p1o705600dxdz,cdj,cdk)) |
2836 | +static CCTK_REAL_VEC PDstandardNthfdOrder813_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2837 | +static CCTK_REAL_VEC PDstandardNthfdOrder813_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2838 | +{ |
2839 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2840 | + return kmul(p1o705600dxdz,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(451584)))))))))))))))))))))); |
2841 | +} |
2842 | +#endif |
2843 | + |
2844 | +#ifndef KRANC_DIFF_FUNCTIONS |
2845 | +# define PDstandardNthfdOrder821(u) (kmul(p1o705600dxdy,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(451584))))))))))))))))))))))) |
2846 | +#else |
2847 | +# define PDstandardNthfdOrder821(u) (PDstandardNthfdOrder821_impl(u,p1o705600dxdy,cdj,cdk)) |
2848 | +static CCTK_REAL_VEC PDstandardNthfdOrder821_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2849 | +static CCTK_REAL_VEC PDstandardNthfdOrder821_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2850 | +{ |
2851 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2852 | + return kmul(p1o705600dxdy,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,1,0),KRANC_GFOFFSET3D(u,1,-1,0)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-2,0),kadd(KRANC_GFOFFSET3D(u,1,2,0),kadd(KRANC_GFOFFSET3D(u,-2,-1,0),KRANC_GFOFFSET3D(u,2,1,0)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,2,0),KRANC_GFOFFSET3D(u,2,-2,0)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,3,0),kadd(KRANC_GFOFFSET3D(u,1,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,1,0),KRANC_GFOFFSET3D(u,3,-1,0)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-3,0),kadd(KRANC_GFOFFSET3D(u,2,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-2,0),KRANC_GFOFFSET3D(u,3,2,0)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-4,0),kadd(KRANC_GFOFFSET3D(u,1,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-1,0),KRANC_GFOFFSET3D(u,4,1,0)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,3,0),KRANC_GFOFFSET3D(u,3,-3,0)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,4,0),kadd(KRANC_GFOFFSET3D(u,2,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,2,0),KRANC_GFOFFSET3D(u,4,-2,0)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-4,0),kadd(KRANC_GFOFFSET3D(u,3,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-3,0),KRANC_GFOFFSET3D(u,4,3,0)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,4,0),KRANC_GFOFFSET3D(u,4,-4,0)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,-4,0),KRANC_GFOFFSET3D(u,4,4,0)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,4,0),kadd(KRANC_GFOFFSET3D(u,3,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,3,0),KRANC_GFOFFSET3D(u,4,-3,0)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-4,0),kadd(KRANC_GFOFFSET3D(u,2,4,0),kadd(KRANC_GFOFFSET3D(u,-4,-2,0),KRANC_GFOFFSET3D(u,4,2,0)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,-3,0),KRANC_GFOFFSET3D(u,3,3,0)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,4,0),kadd(KRANC_GFOFFSET3D(u,1,-4,0),kadd(KRANC_GFOFFSET3D(u,-4,1,0),KRANC_GFOFFSET3D(u,4,-1,0)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,3,0),kadd(KRANC_GFOFFSET3D(u,2,-3,0),kadd(KRANC_GFOFFSET3D(u,-3,2,0),KRANC_GFOFFSET3D(u,3,-2,0)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,-3,0),kadd(KRANC_GFOFFSET3D(u,1,3,0),kadd(KRANC_GFOFFSET3D(u,-3,-1,0),KRANC_GFOFFSET3D(u,3,1,0)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,-2,0),KRANC_GFOFFSET3D(u,2,2,0)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,2,0),kadd(KRANC_GFOFFSET3D(u,1,-2,0),kadd(KRANC_GFOFFSET3D(u,-2,1,0),KRANC_GFOFFSET3D(u,2,-1,0)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,-1,0),KRANC_GFOFFSET3D(u,1,1,0)),ToReal(451584)))))))))))))))))))))); |
2853 | +} |
2854 | +#endif |
2855 | + |
2856 | +#ifndef KRANC_DIFF_FUNCTIONS |
2857 | +# define PDstandardNthfdOrder823(u) (kmul(p1o705600dydz,kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(451584))))))))))))))))))))))) |
2858 | +#else |
2859 | +# define PDstandardNthfdOrder823(u) (PDstandardNthfdOrder823_impl(u,p1o705600dydz,cdj,cdk)) |
2860 | +static CCTK_REAL_VEC PDstandardNthfdOrder823_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2861 | +static CCTK_REAL_VEC PDstandardNthfdOrder823_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2862 | +{ |
2863 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2864 | + return kmul(p1o705600dydz,kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(451584)))))))))))))))))))))); |
2865 | +} |
2866 | +#endif |
2867 | + |
2868 | +#ifndef KRANC_DIFF_FUNCTIONS |
2869 | +# define PDstandardNthfdOrder831(u) (kmul(p1o705600dxdz,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(451584))))))))))))))))))))))) |
2870 | +#else |
2871 | +# define PDstandardNthfdOrder831(u) (PDstandardNthfdOrder831_impl(u,p1o705600dxdz,cdj,cdk)) |
2872 | +static CCTK_REAL_VEC PDstandardNthfdOrder831_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2873 | +static CCTK_REAL_VEC PDstandardNthfdOrder831_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dxdz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2874 | +{ |
2875 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2876 | + return kmul(p1o705600dxdz,kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,1),KRANC_GFOFFSET3D(u,1,0,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-2),kadd(KRANC_GFOFFSET3D(u,1,0,2),kadd(KRANC_GFOFFSET3D(u,-2,0,-1),KRANC_GFOFFSET3D(u,2,0,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,2),KRANC_GFOFFSET3D(u,2,0,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,3),kadd(KRANC_GFOFFSET3D(u,1,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,1),KRANC_GFOFFSET3D(u,3,0,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-3),kadd(KRANC_GFOFFSET3D(u,2,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-2),KRANC_GFOFFSET3D(u,3,0,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-4),kadd(KRANC_GFOFFSET3D(u,1,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-1),KRANC_GFOFFSET3D(u,4,0,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,3),KRANC_GFOFFSET3D(u,3,0,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,4),kadd(KRANC_GFOFFSET3D(u,2,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,2),KRANC_GFOFFSET3D(u,4,0,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-4),kadd(KRANC_GFOFFSET3D(u,3,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-3),KRANC_GFOFFSET3D(u,4,0,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,4),KRANC_GFOFFSET3D(u,4,0,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,-4),KRANC_GFOFFSET3D(u,4,0,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,4),kadd(KRANC_GFOFFSET3D(u,3,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,3),KRANC_GFOFFSET3D(u,4,0,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-4),kadd(KRANC_GFOFFSET3D(u,2,0,4),kadd(KRANC_GFOFFSET3D(u,-4,0,-2),KRANC_GFOFFSET3D(u,4,0,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,-3),KRANC_GFOFFSET3D(u,3,0,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,4),kadd(KRANC_GFOFFSET3D(u,1,0,-4),kadd(KRANC_GFOFFSET3D(u,-4,0,1),KRANC_GFOFFSET3D(u,4,0,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,3),kadd(KRANC_GFOFFSET3D(u,2,0,-3),kadd(KRANC_GFOFFSET3D(u,-3,0,2),KRANC_GFOFFSET3D(u,3,0,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,-3),kadd(KRANC_GFOFFSET3D(u,1,0,3),kadd(KRANC_GFOFFSET3D(u,-3,0,-1),KRANC_GFOFFSET3D(u,3,0,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,-2),KRANC_GFOFFSET3D(u,2,0,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,2),kadd(KRANC_GFOFFSET3D(u,1,0,-2),kadd(KRANC_GFOFFSET3D(u,-2,0,1),KRANC_GFOFFSET3D(u,2,0,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,-1),KRANC_GFOFFSET3D(u,1,0,1)),ToReal(451584)))))))))))))))))))))); |
2877 | +} |
2878 | +#endif |
2879 | + |
2880 | +#ifndef KRANC_DIFF_FUNCTIONS |
2881 | +# define PDstandardNthfdOrder832(u) (kmul(p1o705600dydz,kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(451584))))))))))))))))))))))) |
2882 | +#else |
2883 | +# define PDstandardNthfdOrder832(u) (PDstandardNthfdOrder832_impl(u,p1o705600dydz,cdj,cdk)) |
2884 | +static CCTK_REAL_VEC PDstandardNthfdOrder832_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2885 | +static CCTK_REAL_VEC PDstandardNthfdOrder832_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o705600dydz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2886 | +{ |
2887 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2888 | + return kmul(p1o705600dydz,kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,1),KRANC_GFOFFSET3D(u,0,1,-1)),ToReal(-451584),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-2),kadd(KRANC_GFOFFSET3D(u,0,1,2),kadd(KRANC_GFOFFSET3D(u,0,-2,-1),KRANC_GFOFFSET3D(u,0,2,1)))),ToReal(-112896),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,2),KRANC_GFOFFSET3D(u,0,2,-2)),ToReal(-28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,3),kadd(KRANC_GFOFFSET3D(u,0,1,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,1),KRANC_GFOFFSET3D(u,0,3,-1)))),ToReal(-21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-3),kadd(KRANC_GFOFFSET3D(u,0,2,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-2),KRANC_GFOFFSET3D(u,0,3,2)))),ToReal(-5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-4),kadd(KRANC_GFOFFSET3D(u,0,1,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-1),KRANC_GFOFFSET3D(u,0,4,1)))),ToReal(-2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,3),KRANC_GFOFFSET3D(u,0,3,-3)),ToReal(-1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,4),kadd(KRANC_GFOFFSET3D(u,0,2,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,2),KRANC_GFOFFSET3D(u,0,4,-2)))),ToReal(-504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-4),kadd(KRANC_GFOFFSET3D(u,0,3,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-3),KRANC_GFOFFSET3D(u,0,4,3)))),ToReal(-96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,4),KRANC_GFOFFSET3D(u,0,4,-4)),ToReal(-9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,-4),KRANC_GFOFFSET3D(u,0,4,4)),ToReal(9),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,4),kadd(KRANC_GFOFFSET3D(u,0,3,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,3),KRANC_GFOFFSET3D(u,0,4,-3)))),ToReal(96),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-4),kadd(KRANC_GFOFFSET3D(u,0,2,4),kadd(KRANC_GFOFFSET3D(u,0,-4,-2),KRANC_GFOFFSET3D(u,0,4,2)))),ToReal(504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,-3),KRANC_GFOFFSET3D(u,0,3,3)),ToReal(1024),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,4),kadd(KRANC_GFOFFSET3D(u,0,1,-4),kadd(KRANC_GFOFFSET3D(u,0,-4,1),KRANC_GFOFFSET3D(u,0,4,-1)))),ToReal(2016),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,3),kadd(KRANC_GFOFFSET3D(u,0,2,-3),kadd(KRANC_GFOFFSET3D(u,0,-3,2),KRANC_GFOFFSET3D(u,0,3,-2)))),ToReal(5376),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,-3),kadd(KRANC_GFOFFSET3D(u,0,1,3),kadd(KRANC_GFOFFSET3D(u,0,-3,-1),KRANC_GFOFFSET3D(u,0,3,1)))),ToReal(21504),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,-2),KRANC_GFOFFSET3D(u,0,2,2)),ToReal(28224),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,2),kadd(KRANC_GFOFFSET3D(u,0,1,-2),kadd(KRANC_GFOFFSET3D(u,0,-2,1),KRANC_GFOFFSET3D(u,0,2,-1)))),ToReal(112896),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,-1),KRANC_GFOFFSET3D(u,0,1,1)),ToReal(451584)))))))))))))))))))))); |
2889 | +} |
2890 | +#endif |
2891 | + |
2892 | +#ifndef KRANC_DIFF_FUNCTIONS |
2893 | +# define PDdissipationNthfdOrder21(u) (kmul(p1o16dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) |
2894 | +#else |
2895 | +# define PDdissipationNthfdOrder21(u) (PDdissipationNthfdOrder21_impl(u,p1o16dx,cdj,cdk)) |
2896 | +static CCTK_REAL_VEC PDdissipationNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2897 | +static CCTK_REAL_VEC PDdissipationNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2898 | +{ |
2899 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2900 | + return kmul(p1o16dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); |
2901 | +} |
2902 | +#endif |
2903 | + |
2904 | +#ifndef KRANC_DIFF_FUNCTIONS |
2905 | +# define PDdissipationNthfdOrder22(u) (kmul(p1o16dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) |
2906 | +#else |
2907 | +# define PDdissipationNthfdOrder22(u) (PDdissipationNthfdOrder22_impl(u,p1o16dy,cdj,cdk)) |
2908 | +static CCTK_REAL_VEC PDdissipationNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2909 | +static CCTK_REAL_VEC PDdissipationNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2910 | +{ |
2911 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2912 | + return kmul(p1o16dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); |
2913 | +} |
2914 | +#endif |
2915 | + |
2916 | +#ifndef KRANC_DIFF_FUNCTIONS |
2917 | +# define PDdissipationNthfdOrder23(u) (kmul(p1o16dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) |
2918 | +#else |
2919 | +# define PDdissipationNthfdOrder23(u) (PDdissipationNthfdOrder23_impl(u,p1o16dz,cdj,cdk)) |
2920 | +static CCTK_REAL_VEC PDdissipationNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2921 | +static CCTK_REAL_VEC PDdissipationNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o16dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2922 | +{ |
2923 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2924 | + return kmul(p1o16dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); |
2925 | +} |
2926 | +#endif |
2927 | + |
2928 | +#ifndef KRANC_DIFF_FUNCTIONS |
2929 | +# define PDdissipationNthfdOrder41(u) (kmul(p1o64dx,kadd(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(15)))))))) |
2930 | +#else |
2931 | +# define PDdissipationNthfdOrder41(u) (PDdissipationNthfdOrder41_impl(u,p1o64dx,cdj,cdk)) |
2932 | +static CCTK_REAL_VEC PDdissipationNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2933 | +static CCTK_REAL_VEC PDdissipationNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2934 | +{ |
2935 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2936 | + return kmul(p1o64dx,kadd(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(15))))))); |
2937 | +} |
2938 | +#endif |
2939 | + |
2940 | +#ifndef KRANC_DIFF_FUNCTIONS |
2941 | +# define PDdissipationNthfdOrder42(u) (kmul(p1o64dy,kadd(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(15)))))))) |
2942 | +#else |
2943 | +# define PDdissipationNthfdOrder42(u) (PDdissipationNthfdOrder42_impl(u,p1o64dy,cdj,cdk)) |
2944 | +static CCTK_REAL_VEC PDdissipationNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2945 | +static CCTK_REAL_VEC PDdissipationNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2946 | +{ |
2947 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2948 | + return kmul(p1o64dy,kadd(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(15))))))); |
2949 | +} |
2950 | +#endif |
2951 | + |
2952 | +#ifndef KRANC_DIFF_FUNCTIONS |
2953 | +# define PDdissipationNthfdOrder43(u) (kmul(p1o64dz,kadd(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15)))))))) |
2954 | +#else |
2955 | +# define PDdissipationNthfdOrder43(u) (PDdissipationNthfdOrder43_impl(u,p1o64dz,cdj,cdk)) |
2956 | +static CCTK_REAL_VEC PDdissipationNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2957 | +static CCTK_REAL_VEC PDdissipationNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o64dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2958 | +{ |
2959 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2960 | + return kmul(p1o64dz,kadd(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15))))))); |
2961 | +} |
2962 | +#endif |
2963 | + |
2964 | +#ifndef KRANC_DIFF_FUNCTIONS |
2965 | +# define PDdissipationNthfdOrder61(u) (kmul(p1o256dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70))))))))) |
2966 | +#else |
2967 | +# define PDdissipationNthfdOrder61(u) (PDdissipationNthfdOrder61_impl(u,p1o256dx,cdj,cdk)) |
2968 | +static CCTK_REAL_VEC PDdissipationNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2969 | +static CCTK_REAL_VEC PDdissipationNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2970 | +{ |
2971 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2972 | + return kmul(p1o256dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); |
2973 | +} |
2974 | +#endif |
2975 | + |
2976 | +#ifndef KRANC_DIFF_FUNCTIONS |
2977 | +# define PDdissipationNthfdOrder62(u) (kmul(p1o256dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70))))))))) |
2978 | +#else |
2979 | +# define PDdissipationNthfdOrder62(u) (PDdissipationNthfdOrder62_impl(u,p1o256dy,cdj,cdk)) |
2980 | +static CCTK_REAL_VEC PDdissipationNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2981 | +static CCTK_REAL_VEC PDdissipationNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2982 | +{ |
2983 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2984 | + return kmul(p1o256dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); |
2985 | +} |
2986 | +#endif |
2987 | + |
2988 | +#ifndef KRANC_DIFF_FUNCTIONS |
2989 | +# define PDdissipationNthfdOrder63(u) (kmul(p1o256dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70))))))))) |
2990 | +#else |
2991 | +# define PDdissipationNthfdOrder63(u) (PDdissipationNthfdOrder63_impl(u,p1o256dz,cdj,cdk)) |
2992 | +static CCTK_REAL_VEC PDdissipationNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
2993 | +static CCTK_REAL_VEC PDdissipationNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o256dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
2994 | +{ |
2995 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
2996 | + return kmul(p1o256dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); |
2997 | +} |
2998 | +#endif |
2999 | + |
3000 | +#ifndef KRANC_DIFF_FUNCTIONS |
3001 | +# define PDdissipationNthfdOrder81(u) (kmul(p1o1024dx,kadd(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(210)))))))))) |
3002 | +#else |
3003 | +# define PDdissipationNthfdOrder81(u) (PDdissipationNthfdOrder81_impl(u,p1o1024dx,cdj,cdk)) |
3004 | +static CCTK_REAL_VEC PDdissipationNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3005 | +static CCTK_REAL_VEC PDdissipationNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3006 | +{ |
3007 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3008 | + return kmul(p1o1024dx,kadd(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(210))))))))); |
3009 | +} |
3010 | +#endif |
3011 | + |
3012 | +#ifndef KRANC_DIFF_FUNCTIONS |
3013 | +# define PDdissipationNthfdOrder82(u) (kmul(p1o1024dy,kadd(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(210)))))))))) |
3014 | +#else |
3015 | +# define PDdissipationNthfdOrder82(u) (PDdissipationNthfdOrder82_impl(u,p1o1024dy,cdj,cdk)) |
3016 | +static CCTK_REAL_VEC PDdissipationNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3017 | +static CCTK_REAL_VEC PDdissipationNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3018 | +{ |
3019 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3020 | + return kmul(p1o1024dy,kadd(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(210))))))))); |
3021 | +} |
3022 | +#endif |
3023 | + |
3024 | +#ifndef KRANC_DIFF_FUNCTIONS |
3025 | +# define PDdissipationNthfdOrder83(u) (kmul(p1o1024dz,kadd(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(210)))))))))) |
3026 | +#else |
3027 | +# define PDdissipationNthfdOrder83(u) (PDdissipationNthfdOrder83_impl(u,p1o1024dz,cdj,cdk)) |
3028 | +static CCTK_REAL_VEC PDdissipationNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3029 | +static CCTK_REAL_VEC PDdissipationNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1024dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3030 | +{ |
3031 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3032 | + return kmul(p1o1024dz,kadd(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(210))))))))); |
3033 | +} |
3034 | +#endif |
3035 | + |
3036 | +#ifndef KRANC_DIFF_FUNCTIONS |
3037 | +# define PDupwindNthfdOrder21(u) (kmul(pm1o2dx,kmul(dir1,kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(KRANC_GFOFFSET3D(u,1,0,0),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(3))))))) |
3038 | +#else |
3039 | +# define PDupwindNthfdOrder21(u) (PDupwindNthfdOrder21_impl(u,pm1o2dx,cdj,cdk)) |
3040 | +static CCTK_REAL_VEC PDupwindNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3041 | +static CCTK_REAL_VEC PDupwindNthfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3042 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3043 | +#endif |
3044 | + |
3045 | +#ifndef KRANC_DIFF_FUNCTIONS |
3046 | +# define PDupwindNthfdOrder41(u) (kmul(p1o12dx,kmul(dir1,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-10),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-6),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-3),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(18))))))))) |
3047 | +#else |
3048 | +# define PDupwindNthfdOrder41(u) (PDupwindNthfdOrder41_impl(u,p1o12dx,cdj,cdk)) |
3049 | +static CCTK_REAL_VEC PDupwindNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3050 | +static CCTK_REAL_VEC PDupwindNthfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3051 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3052 | +#endif |
3053 | + |
3054 | +#ifndef KRANC_DIFF_FUNCTIONS |
3055 | +# define PDupwindNthfdOrder61(u) (kmul(pm1o60dx,kmul(dir1,kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(KRANC_GFOFFSET3D(u,1,0,0),ToReal(-80),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(-8),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(-2),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(24),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(30),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(35))))))))))) |
3056 | +#else |
3057 | +# define PDupwindNthfdOrder61(u) (PDupwindNthfdOrder61_impl(u,pm1o60dx,cdj,cdk)) |
3058 | +static CCTK_REAL_VEC PDupwindNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3059 | +static CCTK_REAL_VEC PDupwindNthfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3060 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3061 | +#endif |
3062 | + |
3063 | +#ifndef KRANC_DIFF_FUNCTIONS |
3064 | +# define PDupwindNthfdOrder81(u) (kmul(p1o840dx,kmul(dir1,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-378),kmadd(KRANC_GFOFFSET3D(u,5,0,0),ToReal(3),kmul(ToReal(-5),kadd(KRANC_GFOFFSET3D(u,-3,0,0),kmadd(KRANC_GFOFFSET3D(u,1,0,0),ToReal(-210),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(-28),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(-12),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(84))))))))))))) |
3065 | +#else |
3066 | +# define PDupwindNthfdOrder81(u) (PDupwindNthfdOrder81_impl(u,p1o840dx,cdj,cdk)) |
3067 | +static CCTK_REAL_VEC PDupwindNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3068 | +static CCTK_REAL_VEC PDupwindNthfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3069 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3070 | +#endif |
3071 | + |
3072 | +#ifndef KRANC_DIFF_FUNCTIONS |
3073 | +# define PDupwindNthAntifdOrder21(u) (kmul(p1o4dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(4),KRANC_GFOFFSET3D(u,2,0,0)))))) |
3074 | +#else |
3075 | +# define PDupwindNthAntifdOrder21(u) (PDupwindNthAntifdOrder21_impl(u,p1o4dx,cdj,cdk)) |
3076 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3077 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3078 | +{ |
3079 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3080 | + return kmul(p1o4dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,1,0,0),ToReal(4),KRANC_GFOFFSET3D(u,2,0,0))))); |
3081 | +} |
3082 | +#endif |
3083 | + |
3084 | +#ifndef KRANC_DIFF_FUNCTIONS |
3085 | +# define PDupwindNthAntifdOrder41(u) (kmul(p1o24dx,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(21))),KRANC_GFOFFSET3D(u,-3,0,0))))))) |
3086 | +#else |
3087 | +# define PDupwindNthAntifdOrder41(u) (PDupwindNthAntifdOrder41_impl(u,p1o24dx,cdj,cdk)) |
3088 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3089 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3090 | +{ |
3091 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3092 | + return kmul(p1o24dx,kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(21))),KRANC_GFOFFSET3D(u,-3,0,0)))))); |
3093 | +} |
3094 | +#endif |
3095 | + |
3096 | +#ifndef KRANC_DIFF_FUNCTIONS |
3097 | +# define PDupwindNthAntifdOrder61(u) (kmul(p1o120dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(104)))),KRANC_GFOFFSET3D(u,4,0,0)))))))) |
3098 | +#else |
3099 | +# define PDupwindNthAntifdOrder61(u) (PDupwindNthAntifdOrder61_impl(u,p1o120dx,cdj,cdk)) |
3100 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3101 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3102 | +{ |
3103 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3104 | + return kmul(p1o120dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(104)))),KRANC_GFOFFSET3D(u,4,0,0))))))); |
3105 | +} |
3106 | +#endif |
3107 | + |
3108 | +#ifndef KRANC_DIFF_FUNCTIONS |
3109 | +# define PDupwindNthAntifdOrder81(u) (kmul(p1o1680dx,kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,-5,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,5,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(1470))))))))))))) |
3110 | +#else |
3111 | +# define PDupwindNthAntifdOrder81(u) (PDupwindNthAntifdOrder81_impl(u,p1o1680dx,cdj,cdk)) |
3112 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3113 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3114 | +{ |
3115 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3116 | + return kmul(p1o1680dx,kmadd(KRANC_GFOFFSET3D(u,-1,0,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,2,0,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,-3,0,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,4,0,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,-5,0,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,5,0,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,-4,0,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,3,0,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,-2,0,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,1,0,0),ToReal(1470)))))))))))); |
3117 | +} |
3118 | +#endif |
3119 | + |
3120 | +#ifndef KRANC_DIFF_FUNCTIONS |
3121 | +# define PDupwindNthSymmfdOrder21(u) (kmul(pm1o4dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) |
3122 | +#else |
3123 | +# define PDupwindNthSymmfdOrder21(u) (PDupwindNthSymmfdOrder21_impl(u,pm1o4dx,cdj,cdk)) |
3124 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3125 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder21_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3126 | +{ |
3127 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3128 | + return kmul(pm1o4dx,kadd(KRANC_GFOFFSET3D(u,-2,0,0),kadd(KRANC_GFOFFSET3D(u,2,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); |
3129 | +} |
3130 | +#endif |
3131 | + |
3132 | +#ifndef KRANC_DIFF_FUNCTIONS |
3133 | +# define PDupwindNthSymmfdOrder41(u) (kmul(p1o24dx,kadd(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(15)))))))) |
3134 | +#else |
3135 | +# define PDupwindNthSymmfdOrder41(u) (PDupwindNthSymmfdOrder41_impl(u,p1o24dx,cdj,cdk)) |
3136 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3137 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder41_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3138 | +{ |
3139 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3140 | + return kmul(p1o24dx,kadd(KRANC_GFOFFSET3D(u,-3,0,0),kadd(KRANC_GFOFFSET3D(u,3,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(15))))))); |
3141 | +} |
3142 | +#endif |
3143 | + |
3144 | +#ifndef KRANC_DIFF_FUNCTIONS |
3145 | +# define PDupwindNthSymmfdOrder61(u) (kmul(pm1o120dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70))))))))) |
3146 | +#else |
3147 | +# define PDupwindNthSymmfdOrder61(u) (PDupwindNthSymmfdOrder61_impl(u,pm1o120dx,cdj,cdk)) |
3148 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3149 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder61_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3150 | +{ |
3151 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3152 | + return kmul(pm1o120dx,kadd(KRANC_GFOFFSET3D(u,-4,0,0),kadd(KRANC_GFOFFSET3D(u,4,0,0),kmadd(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); |
3153 | +} |
3154 | +#endif |
3155 | + |
3156 | +#ifndef KRANC_DIFF_FUNCTIONS |
3157 | +# define PDupwindNthSymmfdOrder81(u) (kmul(p1o560dx,kadd(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(210)))))))))) |
3158 | +#else |
3159 | +# define PDupwindNthSymmfdOrder81(u) (PDupwindNthSymmfdOrder81_impl(u,p1o560dx,cdj,cdk)) |
3160 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3161 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder81_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3162 | +{ |
3163 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3164 | + return kmul(p1o560dx,kadd(KRANC_GFOFFSET3D(u,-5,0,0),kadd(KRANC_GFOFFSET3D(u,5,0,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,-2,0,0),KRANC_GFOFFSET3D(u,2,0,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,-4,0,0),KRANC_GFOFFSET3D(u,4,0,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,-3,0,0),KRANC_GFOFFSET3D(u,3,0,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,-1,0,0),KRANC_GFOFFSET3D(u,1,0,0)),ToReal(210))))))))); |
3165 | +} |
3166 | +#endif |
3167 | + |
3168 | +#ifndef KRANC_DIFF_FUNCTIONS |
3169 | +# define PDonesided1(u) (kmul(p1odx,kmul(dir1,ksub(KRANC_GFOFFSET3D(u,1,0,0),KRANC_GFOFFSET3D(u,0,0,0))))) |
3170 | +#else |
3171 | +# define PDonesided1(u) (PDonesided1_impl(u,p1odx,cdj,cdk)) |
3172 | +static CCTK_REAL_VEC PDonesided1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3173 | +static CCTK_REAL_VEC PDonesided1_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odx, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3174 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3175 | +#endif |
3176 | + |
3177 | +#ifndef KRANC_DIFF_FUNCTIONS |
3178 | +# define PDupwindNthfdOrder22(u) (kmul(pm1o2dy,kmul(dir2,kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(KRANC_GFOFFSET3D(u,0,1,0),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(3))))))) |
3179 | +#else |
3180 | +# define PDupwindNthfdOrder22(u) (PDupwindNthfdOrder22_impl(u,pm1o2dy,cdj,cdk)) |
3181 | +static CCTK_REAL_VEC PDupwindNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3182 | +static CCTK_REAL_VEC PDupwindNthfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3183 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3184 | +#endif |
3185 | + |
3186 | +#ifndef KRANC_DIFF_FUNCTIONS |
3187 | +# define PDupwindNthfdOrder42(u) (kmul(p1o12dy,kmul(dir2,kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-10),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-6),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-3),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(18))))))))) |
3188 | +#else |
3189 | +# define PDupwindNthfdOrder42(u) (PDupwindNthfdOrder42_impl(u,p1o12dy,cdj,cdk)) |
3190 | +static CCTK_REAL_VEC PDupwindNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3191 | +static CCTK_REAL_VEC PDupwindNthfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3192 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3193 | +#endif |
3194 | + |
3195 | +#ifndef KRANC_DIFF_FUNCTIONS |
3196 | +# define PDupwindNthfdOrder62(u) (kmul(pm1o60dy,kmul(dir2,kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(KRANC_GFOFFSET3D(u,0,1,0),ToReal(-80),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(-8),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(-2),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(24),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(30),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(35))))))))))) |
3197 | +#else |
3198 | +# define PDupwindNthfdOrder62(u) (PDupwindNthfdOrder62_impl(u,pm1o60dy,cdj,cdk)) |
3199 | +static CCTK_REAL_VEC PDupwindNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3200 | +static CCTK_REAL_VEC PDupwindNthfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3201 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3202 | +#endif |
3203 | + |
3204 | +#ifndef KRANC_DIFF_FUNCTIONS |
3205 | +# define PDupwindNthfdOrder82(u) (kmul(p1o840dy,kmul(dir2,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-378),kmadd(KRANC_GFOFFSET3D(u,0,5,0),ToReal(3),kmul(ToReal(-5),kadd(KRANC_GFOFFSET3D(u,0,-3,0),kmadd(KRANC_GFOFFSET3D(u,0,1,0),ToReal(-210),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(-28),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(-12),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(84))))))))))))) |
3206 | +#else |
3207 | +# define PDupwindNthfdOrder82(u) (PDupwindNthfdOrder82_impl(u,p1o840dy,cdj,cdk)) |
3208 | +static CCTK_REAL_VEC PDupwindNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3209 | +static CCTK_REAL_VEC PDupwindNthfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3210 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3211 | +#endif |
3212 | + |
3213 | +#ifndef KRANC_DIFF_FUNCTIONS |
3214 | +# define PDupwindNthAntifdOrder22(u) (kmul(p1o4dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(4),KRANC_GFOFFSET3D(u,0,2,0)))))) |
3215 | +#else |
3216 | +# define PDupwindNthAntifdOrder22(u) (PDupwindNthAntifdOrder22_impl(u,p1o4dy,cdj,cdk)) |
3217 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3218 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3219 | +{ |
3220 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3221 | + return kmul(p1o4dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,1,0),ToReal(4),KRANC_GFOFFSET3D(u,0,2,0))))); |
3222 | +} |
3223 | +#endif |
3224 | + |
3225 | +#ifndef KRANC_DIFF_FUNCTIONS |
3226 | +# define PDupwindNthAntifdOrder42(u) (kmul(p1o24dy,kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(21))),KRANC_GFOFFSET3D(u,0,-3,0))))))) |
3227 | +#else |
3228 | +# define PDupwindNthAntifdOrder42(u) (PDupwindNthAntifdOrder42_impl(u,p1o24dy,cdj,cdk)) |
3229 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3230 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3231 | +{ |
3232 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3233 | + return kmul(p1o24dy,kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(21))),KRANC_GFOFFSET3D(u,0,-3,0)))))); |
3234 | +} |
3235 | +#endif |
3236 | + |
3237 | +#ifndef KRANC_DIFF_FUNCTIONS |
3238 | +# define PDupwindNthAntifdOrder62(u) (kmul(p1o120dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(104)))),KRANC_GFOFFSET3D(u,0,4,0)))))))) |
3239 | +#else |
3240 | +# define PDupwindNthAntifdOrder62(u) (PDupwindNthAntifdOrder62_impl(u,p1o120dy,cdj,cdk)) |
3241 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3242 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3243 | +{ |
3244 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3245 | + return kmul(p1o120dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(104)))),KRANC_GFOFFSET3D(u,0,4,0))))))); |
3246 | +} |
3247 | +#endif |
3248 | + |
3249 | +#ifndef KRANC_DIFF_FUNCTIONS |
3250 | +# define PDupwindNthAntifdOrder82(u) (kmul(p1o1680dy,kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,-5,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,5,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(1470))))))))))))) |
3251 | +#else |
3252 | +# define PDupwindNthAntifdOrder82(u) (PDupwindNthAntifdOrder82_impl(u,p1o1680dy,cdj,cdk)) |
3253 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3254 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3255 | +{ |
3256 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3257 | + return kmul(p1o1680dy,kmadd(KRANC_GFOFFSET3D(u,0,-1,0),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,2,0),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,-3,0),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,4,0),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,-5,0),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,5,0),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,-4,0),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,3,0),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,-2,0),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,1,0),ToReal(1470)))))))))))); |
3258 | +} |
3259 | +#endif |
3260 | + |
3261 | +#ifndef KRANC_DIFF_FUNCTIONS |
3262 | +# define PDupwindNthSymmfdOrder22(u) (kmul(pm1o4dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) |
3263 | +#else |
3264 | +# define PDupwindNthSymmfdOrder22(u) (PDupwindNthSymmfdOrder22_impl(u,pm1o4dy,cdj,cdk)) |
3265 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3266 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder22_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3267 | +{ |
3268 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3269 | + return kmul(pm1o4dy,kadd(KRANC_GFOFFSET3D(u,0,-2,0),kadd(KRANC_GFOFFSET3D(u,0,2,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); |
3270 | +} |
3271 | +#endif |
3272 | + |
3273 | +#ifndef KRANC_DIFF_FUNCTIONS |
3274 | +# define PDupwindNthSymmfdOrder42(u) (kmul(p1o24dy,kadd(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(15)))))))) |
3275 | +#else |
3276 | +# define PDupwindNthSymmfdOrder42(u) (PDupwindNthSymmfdOrder42_impl(u,p1o24dy,cdj,cdk)) |
3277 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3278 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder42_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3279 | +{ |
3280 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3281 | + return kmul(p1o24dy,kadd(KRANC_GFOFFSET3D(u,0,-3,0),kadd(KRANC_GFOFFSET3D(u,0,3,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(15))))))); |
3282 | +} |
3283 | +#endif |
3284 | + |
3285 | +#ifndef KRANC_DIFF_FUNCTIONS |
3286 | +# define PDupwindNthSymmfdOrder62(u) (kmul(pm1o120dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70))))))))) |
3287 | +#else |
3288 | +# define PDupwindNthSymmfdOrder62(u) (PDupwindNthSymmfdOrder62_impl(u,pm1o120dy,cdj,cdk)) |
3289 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3290 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder62_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3291 | +{ |
3292 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3293 | + return kmul(pm1o120dy,kadd(KRANC_GFOFFSET3D(u,0,-4,0),kadd(KRANC_GFOFFSET3D(u,0,4,0),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); |
3294 | +} |
3295 | +#endif |
3296 | + |
3297 | +#ifndef KRANC_DIFF_FUNCTIONS |
3298 | +# define PDupwindNthSymmfdOrder82(u) (kmul(p1o560dy,kadd(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(210)))))))))) |
3299 | +#else |
3300 | +# define PDupwindNthSymmfdOrder82(u) (PDupwindNthSymmfdOrder82_impl(u,p1o560dy,cdj,cdk)) |
3301 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dy, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3302 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder82_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dy, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3303 | +{ |
3304 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3305 | + return kmul(p1o560dy,kadd(KRANC_GFOFFSET3D(u,0,-5,0),kadd(KRANC_GFOFFSET3D(u,0,5,0),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-2,0),KRANC_GFOFFSET3D(u,0,2,0)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-4,0),KRANC_GFOFFSET3D(u,0,4,0)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,-3,0),KRANC_GFOFFSET3D(u,0,3,0)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,-1,0),KRANC_GFOFFSET3D(u,0,1,0)),ToReal(210))))))))); |
3306 | +} |
3307 | +#endif |
3308 | + |
3309 | +#ifndef KRANC_DIFF_FUNCTIONS |
3310 | +# define PDonesided2(u) (kmul(p1ody,kmul(dir2,ksub(KRANC_GFOFFSET3D(u,0,1,0),KRANC_GFOFFSET3D(u,0,0,0))))) |
3311 | +#else |
3312 | +# define PDonesided2(u) (PDonesided2_impl(u,p1ody,cdj,cdk)) |
3313 | +static CCTK_REAL_VEC PDonesided2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3314 | +static CCTK_REAL_VEC PDonesided2_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1ody, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3315 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3316 | +#endif |
3317 | + |
3318 | +#ifndef KRANC_DIFF_FUNCTIONS |
3319 | +# define PDupwindNthfdOrder23(u) (kmul(pm1o2dz,kmul(dir3,kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(KRANC_GFOFFSET3D(u,0,0,1),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(3))))))) |
3320 | +#else |
3321 | +# define PDupwindNthfdOrder23(u) (PDupwindNthfdOrder23_impl(u,pm1o2dz,cdj,cdk)) |
3322 | +static CCTK_REAL_VEC PDupwindNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3323 | +static CCTK_REAL_VEC PDupwindNthfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o2dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3324 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3325 | +#endif |
3326 | + |
3327 | +#ifndef KRANC_DIFF_FUNCTIONS |
3328 | +# define PDupwindNthfdOrder43(u) (kmul(p1o12dz,kmul(dir3,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-10),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-6),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-3),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(18))))))))) |
3329 | +#else |
3330 | +# define PDupwindNthfdOrder43(u) (PDupwindNthfdOrder43_impl(u,p1o12dz,cdj,cdk)) |
3331 | +static CCTK_REAL_VEC PDupwindNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3332 | +static CCTK_REAL_VEC PDupwindNthfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o12dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3333 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3334 | +#endif |
3335 | + |
3336 | +#ifndef KRANC_DIFF_FUNCTIONS |
3337 | +# define PDupwindNthfdOrder63(u) (kmul(pm1o60dz,kmul(dir3,kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(KRANC_GFOFFSET3D(u,0,0,1),ToReal(-80),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(-8),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(24),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(30),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(35))))))))))) |
3338 | +#else |
3339 | +# define PDupwindNthfdOrder63(u) (PDupwindNthfdOrder63_impl(u,pm1o60dz,cdj,cdk)) |
3340 | +static CCTK_REAL_VEC PDupwindNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3341 | +static CCTK_REAL_VEC PDupwindNthfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o60dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3342 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3343 | +#endif |
3344 | + |
3345 | +#ifndef KRANC_DIFF_FUNCTIONS |
3346 | +# define PDupwindNthfdOrder83(u) (kmul(p1o840dz,kmul(dir3,kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-378),kmadd(KRANC_GFOFFSET3D(u,0,0,5),ToReal(3),kmul(ToReal(-5),kadd(KRANC_GFOFFSET3D(u,0,0,-3),kmadd(KRANC_GFOFFSET3D(u,0,0,1),ToReal(-210),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(-28),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(-12),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(84))))))))))))) |
3347 | +#else |
3348 | +# define PDupwindNthfdOrder83(u) (PDupwindNthfdOrder83_impl(u,p1o840dz,cdj,cdk)) |
3349 | +static CCTK_REAL_VEC PDupwindNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3350 | +static CCTK_REAL_VEC PDupwindNthfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o840dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3351 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3352 | +#endif |
3353 | + |
3354 | +#ifndef KRANC_DIFF_FUNCTIONS |
3355 | +# define PDupwindNthAntifdOrder23(u) (kmul(p1o4dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(4),KRANC_GFOFFSET3D(u,0,0,2)))))) |
3356 | +#else |
3357 | +# define PDupwindNthAntifdOrder23(u) (PDupwindNthAntifdOrder23_impl(u,p1o4dz,cdj,cdk)) |
3358 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3359 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3360 | +{ |
3361 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3362 | + return kmul(p1o4dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-4),kmsub(KRANC_GFOFFSET3D(u,0,0,1),ToReal(4),KRANC_GFOFFSET3D(u,0,0,2))))); |
3363 | +} |
3364 | +#endif |
3365 | + |
3366 | +#ifndef KRANC_DIFF_FUNCTIONS |
3367 | +# define PDupwindNthAntifdOrder43(u) (kmul(p1o24dz,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(21))),KRANC_GFOFFSET3D(u,0,0,-3))))))) |
3368 | +#else |
3369 | +# define PDupwindNthAntifdOrder43(u) (PDupwindNthAntifdOrder43_impl(u,p1o24dz,cdj,cdk)) |
3370 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3371 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3372 | +{ |
3373 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3374 | + return kmul(p1o24dz,kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-21),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-6),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(6),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(21))),KRANC_GFOFFSET3D(u,0,0,-3)))))); |
3375 | +} |
3376 | +#endif |
3377 | + |
3378 | +#ifndef KRANC_DIFF_FUNCTIONS |
3379 | +# define PDupwindNthAntifdOrder63(u) (kmul(p1o120dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(104)))),KRANC_GFOFFSET3D(u,0,0,4)))))))) |
3380 | +#else |
3381 | +# define PDupwindNthAntifdOrder63(u) (PDupwindNthAntifdOrder63_impl(u,p1o120dz,cdj,cdk)) |
3382 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3383 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3384 | +{ |
3385 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3386 | + return kmul(p1o120dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-104),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-32),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-8),ksub(kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(8),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(32),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(104)))),KRANC_GFOFFSET3D(u,0,0,4))))))); |
3387 | +} |
3388 | +#endif |
3389 | + |
3390 | +#ifndef KRANC_DIFF_FUNCTIONS |
3391 | +# define PDupwindNthAntifdOrder83(u) (kmul(p1o1680dz,kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,0,-5),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,5),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(1470))))))))))))) |
3392 | +#else |
3393 | +# define PDupwindNthAntifdOrder83(u) (PDupwindNthAntifdOrder83_impl(u,p1o1680dz,cdj,cdk)) |
3394 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3395 | +static CCTK_REAL_VEC PDupwindNthAntifdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o1680dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3396 | +{ |
3397 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3398 | + return kmul(p1o1680dz,kmadd(KRANC_GFOFFSET3D(u,0,0,-1),ToReal(-1470),kmadd(KRANC_GFOFFSET3D(u,0,0,2),ToReal(-480),kmadd(KRANC_GFOFFSET3D(u,0,0,-3),ToReal(-145),kmadd(KRANC_GFOFFSET3D(u,0,0,4),ToReal(-30),kmadd(KRANC_GFOFFSET3D(u,0,0,-5),ToReal(-3),kmadd(KRANC_GFOFFSET3D(u,0,0,5),ToReal(3),kmadd(KRANC_GFOFFSET3D(u,0,0,-4),ToReal(30),kmadd(KRANC_GFOFFSET3D(u,0,0,3),ToReal(145),kmadd(KRANC_GFOFFSET3D(u,0,0,-2),ToReal(480),kmul(KRANC_GFOFFSET3D(u,0,0,1),ToReal(1470)))))))))))); |
3399 | +} |
3400 | +#endif |
3401 | + |
3402 | +#ifndef KRANC_DIFF_FUNCTIONS |
3403 | +# define PDupwindNthSymmfdOrder23(u) (kmul(pm1o4dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6))))))) |
3404 | +#else |
3405 | +# define PDupwindNthSymmfdOrder23(u) (PDupwindNthSymmfdOrder23_impl(u,pm1o4dz,cdj,cdk)) |
3406 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3407 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder23_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o4dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3408 | +{ |
3409 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3410 | + return kmul(pm1o4dz,kadd(KRANC_GFOFFSET3D(u,0,0,-2),kadd(KRANC_GFOFFSET3D(u,0,0,2),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-4),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(6)))))); |
3411 | +} |
3412 | +#endif |
3413 | + |
3414 | +#ifndef KRANC_DIFF_FUNCTIONS |
3415 | +# define PDupwindNthSymmfdOrder43(u) (kmul(p1o24dz,kadd(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15)))))))) |
3416 | +#else |
3417 | +# define PDupwindNthSymmfdOrder43(u) (PDupwindNthSymmfdOrder43_impl(u,p1o24dz,cdj,cdk)) |
3418 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3419 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder43_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o24dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3420 | +{ |
3421 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3422 | + return kmul(p1o24dz,kadd(KRANC_GFOFFSET3D(u,0,0,-3),kadd(KRANC_GFOFFSET3D(u,0,0,3),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-20),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-6),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(15))))))); |
3423 | +} |
3424 | +#endif |
3425 | + |
3426 | +#ifndef KRANC_DIFF_FUNCTIONS |
3427 | +# define PDupwindNthSymmfdOrder63(u) (kmul(pm1o120dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70))))))))) |
3428 | +#else |
3429 | +# define PDupwindNthSymmfdOrder63(u) (PDupwindNthSymmfdOrder63_impl(u,pm1o120dz,cdj,cdk)) |
3430 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3431 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder63_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const pm1o120dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3432 | +{ |
3433 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3434 | + return kmul(pm1o120dz,kadd(KRANC_GFOFFSET3D(u,0,0,-4),kadd(KRANC_GFOFFSET3D(u,0,0,4),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(-56),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(-8),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(28),kmul(KRANC_GFOFFSET3D(u,0,0,0),ToReal(70)))))))); |
3435 | +} |
3436 | +#endif |
3437 | + |
3438 | +#ifndef KRANC_DIFF_FUNCTIONS |
3439 | +# define PDupwindNthSymmfdOrder83(u) (kmul(p1o560dz,kadd(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(210)))))))))) |
3440 | +#else |
3441 | +# define PDupwindNthSymmfdOrder83(u) (PDupwindNthSymmfdOrder83_impl(u,p1o560dz,cdj,cdk)) |
3442 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3443 | +static CCTK_REAL_VEC PDupwindNthSymmfdOrder83_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1o560dz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3444 | +{ |
3445 | + ptrdiff_t const cdi=sizeof(CCTK_REAL); |
3446 | + return kmul(p1o560dz,kadd(KRANC_GFOFFSET3D(u,0,0,-5),kadd(KRANC_GFOFFSET3D(u,0,0,5),kmadd(KRANC_GFOFFSET3D(u,0,0,0),ToReal(-252),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-2),KRANC_GFOFFSET3D(u,0,0,2)),ToReal(-120),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-4),KRANC_GFOFFSET3D(u,0,0,4)),ToReal(-10),kmadd(kadd(KRANC_GFOFFSET3D(u,0,0,-3),KRANC_GFOFFSET3D(u,0,0,3)),ToReal(45),kmul(kadd(KRANC_GFOFFSET3D(u,0,0,-1),KRANC_GFOFFSET3D(u,0,0,1)),ToReal(210))))))))); |
3447 | +} |
3448 | +#endif |
3449 | + |
3450 | +#ifndef KRANC_DIFF_FUNCTIONS |
3451 | +# define PDonesided3(u) (kmul(p1odz,kmul(dir3,ksub(KRANC_GFOFFSET3D(u,0,0,1),KRANC_GFOFFSET3D(u,0,0,0))))) |
3452 | +#else |
3453 | +# define PDonesided3(u) (PDonesided3_impl(u,p1odz,cdj,cdk)) |
3454 | +static CCTK_REAL_VEC PDonesided3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk) CCTK_ATTRIBUTE_NOINLINE CCTK_ATTRIBUTE_UNUSED; |
3455 | +static CCTK_REAL_VEC PDonesided3_impl(CCTK_REAL const* restrict const u, CCTK_REAL_VEC const p1odz, ptrdiff_t const cdj, ptrdiff_t const cdk) |
3456 | +{ assert(0); return ToReal(1e30); /* ERROR */ } |
3457 | +#endif |
3458 | + |
3459 | + |
3460 | +// Kernel Function: |
3461 | +kernel |
3462 | +__attribute__((vec_type_hint(CCTK_REAL_VEC))) |
3463 | +__attribute__((reqd_work_group_size(GROUP_SIZE_I, GROUP_SIZE_J, GROUP_SIZE_K))) |
3464 | +void ML_BSSN_CL_RHS1 |
3465 | + (cGH constant *restrict const cctkGH, |
3466 | + cctk_parameters_t constant *restrict const cctk_parameters, |
3467 | + CCTK_REAL global *restrict const x, |
3468 | + CCTK_REAL global *restrict const y, |
3469 | + CCTK_REAL global *restrict const z, |
3470 | + CCTK_REAL global *restrict const r, |
3471 | + CCTK_REAL global *restrict const At11, |
3472 | + CCTK_REAL global *restrict const At11_p, |
3473 | + CCTK_REAL global *restrict const At11_p_p, |
3474 | + CCTK_REAL global *restrict const At12, |
3475 | + CCTK_REAL global *restrict const At12_p, |
3476 | + CCTK_REAL global *restrict const At12_p_p, |
3477 | + CCTK_REAL global *restrict const At13, |
3478 | + CCTK_REAL global *restrict const At13_p, |
3479 | + CCTK_REAL global *restrict const At13_p_p, |
3480 | + CCTK_REAL global *restrict const At22, |
3481 | + CCTK_REAL global *restrict const At22_p, |
3482 | + CCTK_REAL global *restrict const At22_p_p, |
3483 | + CCTK_REAL global *restrict const At23, |
3484 | + CCTK_REAL global *restrict const At23_p, |
3485 | + CCTK_REAL global *restrict const At23_p_p, |
3486 | + CCTK_REAL global *restrict const At33, |
3487 | + CCTK_REAL global *restrict const At33_p, |
3488 | + CCTK_REAL global *restrict const At33_p_p, |
3489 | + CCTK_REAL global *restrict const A, |
3490 | + CCTK_REAL global *restrict const A_p, |
3491 | + CCTK_REAL global *restrict const A_p_p, |
3492 | + CCTK_REAL global *restrict const Arhs, |
3493 | + CCTK_REAL global *restrict const B1, |
3494 | + CCTK_REAL global *restrict const B1_p, |
3495 | + CCTK_REAL global *restrict const B1_p_p, |
3496 | + CCTK_REAL global *restrict const B2, |
3497 | + CCTK_REAL global *restrict const B2_p, |
3498 | + CCTK_REAL global *restrict const B2_p_p, |
3499 | + CCTK_REAL global *restrict const B3, |
3500 | + CCTK_REAL global *restrict const B3_p, |
3501 | + CCTK_REAL global *restrict const B3_p_p, |
3502 | + CCTK_REAL global *restrict const B1rhs, |
3503 | + CCTK_REAL global *restrict const B2rhs, |
3504 | + CCTK_REAL global *restrict const B3rhs, |
3505 | + CCTK_REAL global *restrict const Xt1, |
3506 | + CCTK_REAL global *restrict const Xt1_p, |
3507 | + CCTK_REAL global *restrict const Xt1_p_p, |
3508 | + CCTK_REAL global *restrict const Xt2, |
3509 | + CCTK_REAL global *restrict const Xt2_p, |
3510 | + CCTK_REAL global *restrict const Xt2_p_p, |
3511 | + CCTK_REAL global *restrict const Xt3, |
3512 | + CCTK_REAL global *restrict const Xt3_p, |
3513 | + CCTK_REAL global *restrict const Xt3_p_p, |
3514 | + CCTK_REAL global *restrict const Xt1rhs, |
3515 | + CCTK_REAL global *restrict const Xt2rhs, |
3516 | + CCTK_REAL global *restrict const Xt3rhs, |
3517 | + CCTK_REAL global *restrict const alpha, |
3518 | + CCTK_REAL global *restrict const alpha_p, |
3519 | + CCTK_REAL global *restrict const alpha_p_p, |
3520 | + CCTK_REAL global *restrict const alpharhs, |
3521 | + CCTK_REAL global *restrict const phi, |
3522 | + CCTK_REAL global *restrict const phi_p, |
3523 | + CCTK_REAL global *restrict const phi_p_p, |
3524 | + CCTK_REAL global *restrict const phirhs, |
3525 | + CCTK_REAL global *restrict const gt11, |
3526 | + CCTK_REAL global *restrict const gt11_p, |
3527 | + CCTK_REAL global *restrict const gt11_p_p, |
3528 | + CCTK_REAL global *restrict const gt12, |
3529 | + CCTK_REAL global *restrict const gt12_p, |
3530 | + CCTK_REAL global *restrict const gt12_p_p, |
3531 | + CCTK_REAL global *restrict const gt13, |
3532 | + CCTK_REAL global *restrict const gt13_p, |
3533 | + CCTK_REAL global *restrict const gt13_p_p, |
3534 | + CCTK_REAL global *restrict const gt22, |
3535 | + CCTK_REAL global *restrict const gt22_p, |
3536 | + CCTK_REAL global *restrict const gt22_p_p, |
3537 | + CCTK_REAL global *restrict const gt23, |
3538 | + CCTK_REAL global *restrict const gt23_p, |
3539 | + CCTK_REAL global *restrict const gt23_p_p, |
3540 | + CCTK_REAL global *restrict const gt33, |
3541 | + CCTK_REAL global *restrict const gt33_p, |
3542 | + CCTK_REAL global *restrict const gt33_p_p, |
3543 | + CCTK_REAL global *restrict const gt11rhs, |
3544 | + CCTK_REAL global *restrict const gt12rhs, |
3545 | + CCTK_REAL global *restrict const gt13rhs, |
3546 | + CCTK_REAL global *restrict const gt22rhs, |
3547 | + CCTK_REAL global *restrict const gt23rhs, |
3548 | + CCTK_REAL global *restrict const gt33rhs, |
3549 | + CCTK_REAL global *restrict const beta1, |
3550 | + CCTK_REAL global *restrict const beta1_p, |
3551 | + CCTK_REAL global *restrict const beta1_p_p, |
3552 | + CCTK_REAL global *restrict const beta2, |
3553 | + CCTK_REAL global *restrict const beta2_p, |
3554 | + CCTK_REAL global *restrict const beta2_p_p, |
3555 | + CCTK_REAL global *restrict const beta3, |
3556 | + CCTK_REAL global *restrict const beta3_p, |
3557 | + CCTK_REAL global *restrict const beta3_p_p, |
3558 | + CCTK_REAL global *restrict const beta1rhs, |
3559 | + CCTK_REAL global *restrict const beta2rhs, |
3560 | + CCTK_REAL global *restrict const beta3rhs, |
3561 | + CCTK_REAL global *restrict const trK, |
3562 | + CCTK_REAL global *restrict const trK_p, |
3563 | + CCTK_REAL global *restrict const trK_p_p, |
3564 | + CCTK_REAL global *restrict const trKrhs) |
3565 | +{ |
3566 | + DECLARE_CCTK_ARGUMENTS |
3567 | + DECLARE_CCTK_PARAMETERS |
3568 | + |
3569 | + // The Kernel: |
3570 | + |
3571 | +/* Include user-supplied include files */ |
3572 | + |
3573 | +/* Initialise finite differencing variables */ |
3574 | +ptrdiff_t const di CCTK_ATTRIBUTE_UNUSED = 1; |
3575 | +ptrdiff_t const dj CCTK_ATTRIBUTE_UNUSED = CCTK_GFINDEX3D(cctkGH,0,1,0) - CCTK_GFINDEX3D(cctkGH,0,0,0); |
3576 | +ptrdiff_t const dk CCTK_ATTRIBUTE_UNUSED = CCTK_GFINDEX3D(cctkGH,0,0,1) - CCTK_GFINDEX3D(cctkGH,0,0,0); |
3577 | +ptrdiff_t const cdi CCTK_ATTRIBUTE_UNUSED = sizeof(CCTK_REAL) * di; |
3578 | +ptrdiff_t const cdj CCTK_ATTRIBUTE_UNUSED = sizeof(CCTK_REAL) * dj; |
3579 | +ptrdiff_t const cdk CCTK_ATTRIBUTE_UNUSED = sizeof(CCTK_REAL) * dk; |
3580 | +CCTK_REAL_VEC const dx CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_SPACE(0)); |
3581 | +CCTK_REAL_VEC const dy CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_SPACE(1)); |
3582 | +CCTK_REAL_VEC const dz CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_SPACE(2)); |
3583 | +CCTK_REAL_VEC const dt CCTK_ATTRIBUTE_UNUSED = ToReal(CCTK_DELTA_TIME); |
3584 | +CCTK_REAL_VEC const t CCTK_ATTRIBUTE_UNUSED = ToReal(cctk_time); |
3585 | +CCTK_REAL_VEC const dxi CCTK_ATTRIBUTE_UNUSED = INV(dx); |
3586 | +CCTK_REAL_VEC const dyi CCTK_ATTRIBUTE_UNUSED = INV(dy); |
3587 | +CCTK_REAL_VEC const dzi CCTK_ATTRIBUTE_UNUSED = INV(dz); |
3588 | +CCTK_REAL_VEC const khalf CCTK_ATTRIBUTE_UNUSED = ToReal(0.5); |
3589 | +CCTK_REAL_VEC const kthird CCTK_ATTRIBUTE_UNUSED = ToReal(1.0/3.0); |
3590 | +CCTK_REAL_VEC const ktwothird CCTK_ATTRIBUTE_UNUSED = ToReal(2.0/3.0); |
3591 | +CCTK_REAL_VEC const kfourthird CCTK_ATTRIBUTE_UNUSED = ToReal(4.0/3.0); |
3592 | +CCTK_REAL_VEC const keightthird CCTK_ATTRIBUTE_UNUSED = ToReal(8.0/3.0); |
3593 | +CCTK_REAL_VEC const hdxi CCTK_ATTRIBUTE_UNUSED = kmul(ToReal(0.5), dxi); |
3594 | +CCTK_REAL_VEC const hdyi CCTK_ATTRIBUTE_UNUSED = kmul(ToReal(0.5), dyi); |
3595 | +CCTK_REAL_VEC const hdzi CCTK_ATTRIBUTE_UNUSED = kmul(ToReal(0.5), dzi); |
3596 | + |
3597 | +/* Initialize predefined quantities */ |
3598 | +CCTK_REAL_VEC const p1o1024dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0009765625),dx); |
3599 | +CCTK_REAL_VEC const p1o1024dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0009765625),dy); |
3600 | +CCTK_REAL_VEC const p1o1024dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0009765625),dz); |
3601 | +CCTK_REAL_VEC const p1o120dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00833333333333333333333333333333),dx); |
3602 | +CCTK_REAL_VEC const p1o120dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00833333333333333333333333333333),dy); |
3603 | +CCTK_REAL_VEC const p1o120dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00833333333333333333333333333333),dz); |
3604 | +CCTK_REAL_VEC const p1o12dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0833333333333333333333333333333),dx); |
3605 | +CCTK_REAL_VEC const p1o12dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0833333333333333333333333333333),dy); |
3606 | +CCTK_REAL_VEC const p1o12dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0833333333333333333333333333333),dz); |
3607 | +CCTK_REAL_VEC const p1o144dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dy,dx)); |
3608 | +CCTK_REAL_VEC const p1o144dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dx)); |
3609 | +CCTK_REAL_VEC const p1o144dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00694444444444444444444444444444),kmul(dz,dy)); |
3610 | +CCTK_REAL_VEC const p1o1680dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000595238095238095238095238095238),dx); |
3611 | +CCTK_REAL_VEC const p1o1680dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000595238095238095238095238095238),dy); |
3612 | +CCTK_REAL_VEC const p1o1680dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000595238095238095238095238095238),dz); |
3613 | +CCTK_REAL_VEC const p1o16dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0625),dx); |
3614 | +CCTK_REAL_VEC const p1o16dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0625),dy); |
3615 | +CCTK_REAL_VEC const p1o16dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0625),dz); |
3616 | +CCTK_REAL_VEC const p1o180dx2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dx,dx)); |
3617 | +CCTK_REAL_VEC const p1o180dy2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dy,dy)); |
3618 | +CCTK_REAL_VEC const p1o180dz2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00555555555555555555555555555556),kmul(dz,dz)); |
3619 | +CCTK_REAL_VEC const p1o24dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0416666666666666666666666666667),dx); |
3620 | +CCTK_REAL_VEC const p1o24dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0416666666666666666666666666667),dy); |
3621 | +CCTK_REAL_VEC const p1o24dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0416666666666666666666666666667),dz); |
3622 | +CCTK_REAL_VEC const p1o256dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00390625),dx); |
3623 | +CCTK_REAL_VEC const p1o256dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00390625),dy); |
3624 | +CCTK_REAL_VEC const p1o256dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00390625),dz); |
3625 | +CCTK_REAL_VEC const p1o2dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.5),dx); |
3626 | +CCTK_REAL_VEC const p1o2dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.5),dy); |
3627 | +CCTK_REAL_VEC const p1o2dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.5),dz); |
3628 | +CCTK_REAL_VEC const p1o3600dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dy,dx)); |
3629 | +CCTK_REAL_VEC const p1o3600dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dx)); |
3630 | +CCTK_REAL_VEC const p1o3600dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000277777777777777777777777777778),kmul(dz,dy)); |
3631 | +CCTK_REAL_VEC const p1o4dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),dx); |
3632 | +CCTK_REAL_VEC const p1o4dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dy,dx)); |
3633 | +CCTK_REAL_VEC const p1o4dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dz,dx)); |
3634 | +CCTK_REAL_VEC const p1o4dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),dy); |
3635 | +CCTK_REAL_VEC const p1o4dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),kmul(dz,dy)); |
3636 | +CCTK_REAL_VEC const p1o4dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.25),dz); |
3637 | +CCTK_REAL_VEC const p1o5040dx2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dx,dx)); |
3638 | +CCTK_REAL_VEC const p1o5040dy2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dy,dy)); |
3639 | +CCTK_REAL_VEC const p1o5040dz2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.000198412698412698412698412698413),kmul(dz,dz)); |
3640 | +CCTK_REAL_VEC const p1o560dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00178571428571428571428571428571),dx); |
3641 | +CCTK_REAL_VEC const p1o560dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00178571428571428571428571428571),dy); |
3642 | +CCTK_REAL_VEC const p1o560dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00178571428571428571428571428571),dz); |
3643 | +CCTK_REAL_VEC const p1o60dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0166666666666666666666666666667),dx); |
3644 | +CCTK_REAL_VEC const p1o60dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0166666666666666666666666666667),dy); |
3645 | +CCTK_REAL_VEC const p1o60dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.0166666666666666666666666666667),dz); |
3646 | +CCTK_REAL_VEC const p1o64dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.015625),dx); |
3647 | +CCTK_REAL_VEC const p1o64dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.015625),dy); |
3648 | +CCTK_REAL_VEC const p1o64dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.015625),dz); |
3649 | +CCTK_REAL_VEC const p1o705600dxdy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dy,dx)); |
3650 | +CCTK_REAL_VEC const p1o705600dxdz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dx)); |
3651 | +CCTK_REAL_VEC const p1o705600dydz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1.41723356009070294784580498866e-6),kmul(dz,dy)); |
3652 | +CCTK_REAL_VEC const p1o840dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00119047619047619047619047619048),dx); |
3653 | +CCTK_REAL_VEC const p1o840dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00119047619047619047619047619048),dy); |
3654 | +CCTK_REAL_VEC const p1o840dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(0.00119047619047619047619047619048),dz); |
3655 | +CCTK_REAL_VEC const p1odx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),dx); |
3656 | +CCTK_REAL_VEC const p1odx2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),kmul(dx,dx)); |
3657 | +CCTK_REAL_VEC const p1ody CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),dy); |
3658 | +CCTK_REAL_VEC const p1ody2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),kmul(dy,dy)); |
3659 | +CCTK_REAL_VEC const p1odz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),dz); |
3660 | +CCTK_REAL_VEC const p1odz2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(1),kmul(dz,dz)); |
3661 | +CCTK_REAL_VEC const pm1o120dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.00833333333333333333333333333333),dx); |
3662 | +CCTK_REAL_VEC const pm1o120dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.00833333333333333333333333333333),dy); |
3663 | +CCTK_REAL_VEC const pm1o120dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.00833333333333333333333333333333),dz); |
3664 | +CCTK_REAL_VEC const pm1o12dx2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dx,dx)); |
3665 | +CCTK_REAL_VEC const pm1o12dy2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dy,dy)); |
3666 | +CCTK_REAL_VEC const pm1o12dz2 CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0833333333333333333333333333333),kmul(dz,dz)); |
3667 | +CCTK_REAL_VEC const pm1o2dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.5),dx); |
3668 | +CCTK_REAL_VEC const pm1o2dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.5),dy); |
3669 | +CCTK_REAL_VEC const pm1o2dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.5),dz); |
3670 | +CCTK_REAL_VEC const pm1o4dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.25),dx); |
3671 | +CCTK_REAL_VEC const pm1o4dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.25),dy); |
3672 | +CCTK_REAL_VEC const pm1o4dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.25),dz); |
3673 | +CCTK_REAL_VEC const pm1o60dx CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0166666666666666666666666666667),dx); |
3674 | +CCTK_REAL_VEC const pm1o60dy CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0166666666666666666666666666667),dy); |
3675 | +CCTK_REAL_VEC const pm1o60dz CCTK_ATTRIBUTE_UNUSED = kdiv(ToReal(-0.0166666666666666666666666666667),dz); |
3676 | + |
3677 | +/* Jacobian variable pointers */ |
3678 | +bool const use_jacobian = (!CCTK_IsFunctionAliased("MultiPatch_GetMap") || MultiPatch_GetMap(cctkGH) != jacobian_identity_map) |
3679 | + && strlen(jacobian_group) > 0; |
3680 | +bool const usejacobian = use_jacobian; |
3681 | +if (use_jacobian && (strlen(jacobian_determinant_group) == 0 || strlen(jacobian_inverse_group) == 0 || strlen(jacobian_derivative_group) == 0)) |
3682 | +{ |
3683 | + CCTK_WARN (1, "GenericFD::jacobian_group, GenericFD::jacobian_determinant_group, GenericFD::jacobian_inverse_group, and GenericFD::jacobian_derivative_group must all be set to valid group names"); |
3684 | +} |
3685 | + |
3686 | +CCTK_REAL const *restrict jacobian_ptrs[9]; |
3687 | +if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_group, |
3688 | + 9, jacobian_ptrs); |
3689 | + |
3690 | +CCTK_REAL const *restrict const J11 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[0] : 0; |
3691 | +CCTK_REAL const *restrict const J12 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[1] : 0; |
3692 | +CCTK_REAL const *restrict const J13 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[2] : 0; |
3693 | +CCTK_REAL const *restrict const J21 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[3] : 0; |
3694 | +CCTK_REAL const *restrict const J22 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[4] : 0; |
3695 | +CCTK_REAL const *restrict const J23 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[5] : 0; |
3696 | +CCTK_REAL const *restrict const J31 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[6] : 0; |
3697 | +CCTK_REAL const *restrict const J32 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[7] : 0; |
3698 | +CCTK_REAL const *restrict const J33 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[8] : 0; |
3699 | + |
3700 | +CCTK_REAL const *restrict jacobian_determinant_ptrs[1] CCTK_ATTRIBUTE_UNUSED; |
3701 | +if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_determinant_group, |
3702 | + 1, jacobian_determinant_ptrs); |
3703 | + |
3704 | +CCTK_REAL const *restrict const detJ CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_ptrs[0] : 0; |
3705 | + |
3706 | +CCTK_REAL const *restrict jacobian_inverse_ptrs[9] CCTK_ATTRIBUTE_UNUSED; |
3707 | +if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_inverse_group, |
3708 | + 9, jacobian_inverse_ptrs); |
3709 | + |
3710 | +CCTK_REAL const *restrict const iJ11 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[0] : 0; |
3711 | +CCTK_REAL const *restrict const iJ12 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[1] : 0; |
3712 | +CCTK_REAL const *restrict const iJ13 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[2] : 0; |
3713 | +CCTK_REAL const *restrict const iJ21 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[3] : 0; |
3714 | +CCTK_REAL const *restrict const iJ22 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[4] : 0; |
3715 | +CCTK_REAL const *restrict const iJ23 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[5] : 0; |
3716 | +CCTK_REAL const *restrict const iJ31 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[6] : 0; |
3717 | +CCTK_REAL const *restrict const iJ32 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[7] : 0; |
3718 | +CCTK_REAL const *restrict const iJ33 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_inverse_ptrs[8] : 0; |
3719 | + |
3720 | +CCTK_REAL const *restrict jacobian_derivative_ptrs[18] CCTK_ATTRIBUTE_UNUSED; |
3721 | +if (use_jacobian) GenericFD_GroupDataPointers(cctkGH, jacobian_derivative_group, |
3722 | + 18, jacobian_derivative_ptrs); |
3723 | + |
3724 | +CCTK_REAL const *restrict const dJ111 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[0] : 0; |
3725 | +CCTK_REAL const *restrict const dJ112 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[1] : 0; |
3726 | +CCTK_REAL const *restrict const dJ113 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[2] : 0; |
3727 | +CCTK_REAL const *restrict const dJ122 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[3] : 0; |
3728 | +CCTK_REAL const *restrict const dJ123 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[4] : 0; |
3729 | +CCTK_REAL const *restrict const dJ133 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[5] : 0; |
3730 | +CCTK_REAL const *restrict const dJ211 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[6] : 0; |
3731 | +CCTK_REAL const *restrict const dJ212 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[7] : 0; |
3732 | +CCTK_REAL const *restrict const dJ213 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[8] : 0; |
3733 | +CCTK_REAL const *restrict const dJ222 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[9] : 0; |
3734 | +CCTK_REAL const *restrict const dJ223 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[10] : 0; |
3735 | +CCTK_REAL const *restrict const dJ233 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[11] : 0; |
3736 | +CCTK_REAL const *restrict const dJ311 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[12] : 0; |
3737 | +CCTK_REAL const *restrict const dJ312 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[13] : 0; |
3738 | +CCTK_REAL const *restrict const dJ313 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[14] : 0; |
3739 | +CCTK_REAL const *restrict const dJ322 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[15] : 0; |
3740 | +CCTK_REAL const *restrict const dJ323 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[16] : 0; |
3741 | +CCTK_REAL const *restrict const dJ333 CCTK_ATTRIBUTE_UNUSED = use_jacobian ? jacobian_derivative_ptrs[17] : 0; |
3742 | + |
3743 | +/* Assign local copies of arrays functions */ |
3744 | + |
3745 | + |
3746 | + |
3747 | +/* Calculate temporaries and arrays functions */ |
3748 | + |
3749 | +/* Copy local copies back to grid functions */ |
3750 | + |
3751 | +/* Loop over the grid points */ |
3752 | +#pragma omp parallel |
3753 | +LC_LOOP3VEC(ML_BSSN_CL_RHS1, |
3754 | + i,j,k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], |
3755 | + cctk_ash[0],cctk_ash[1],cctk_ash[2], |
3756 | + CCTK_REAL_VEC_SIZE) |
3757 | +{ |
3758 | + ptrdiff_t const index CCTK_ATTRIBUTE_UNUSED = di*i + dj*j + dk*k; |
3759 | + |
3760 | + /* Assign local copies of grid functions */ |
3761 | + |
3762 | + CCTK_REAL_VEC AL CCTK_ATTRIBUTE_UNUSED = vec_load(A[index]); |
3763 | + CCTK_REAL_VEC alphaL CCTK_ATTRIBUTE_UNUSED = vec_load(alpha[index]); |
3764 | + CCTK_REAL_VEC At11L CCTK_ATTRIBUTE_UNUSED = vec_load(At11[index]); |
3765 | + CCTK_REAL_VEC At12L CCTK_ATTRIBUTE_UNUSED = vec_load(At12[index]); |
3766 | + CCTK_REAL_VEC At13L CCTK_ATTRIBUTE_UNUSED = vec_load(At13[index]); |
3767 | + CCTK_REAL_VEC At22L CCTK_ATTRIBUTE_UNUSED = vec_load(At22[index]); |
3768 | + CCTK_REAL_VEC At23L CCTK_ATTRIBUTE_UNUSED = vec_load(At23[index]); |
3769 | + CCTK_REAL_VEC At33L CCTK_ATTRIBUTE_UNUSED = vec_load(At33[index]); |
3770 | + CCTK_REAL_VEC B1L CCTK_ATTRIBUTE_UNUSED = vec_load(B1[index]); |
3771 | + CCTK_REAL_VEC B2L CCTK_ATTRIBUTE_UNUSED = vec_load(B2[index]); |
3772 | + CCTK_REAL_VEC B3L CCTK_ATTRIBUTE_UNUSED = vec_load(B3[index]); |
3773 | + CCTK_REAL_VEC beta1L CCTK_ATTRIBUTE_UNUSED = vec_load(beta1[index]); |
3774 | + CCTK_REAL_VEC beta2L CCTK_ATTRIBUTE_UNUSED = vec_load(beta2[index]); |
3775 | + CCTK_REAL_VEC beta3L CCTK_ATTRIBUTE_UNUSED = vec_load(beta3[index]); |
3776 | + CCTK_REAL_VEC gt11L CCTK_ATTRIBUTE_UNUSED = vec_load(gt11[index]); |
3777 | + CCTK_REAL_VEC gt12L CCTK_ATTRIBUTE_UNUSED = vec_load(gt12[index]); |
3778 | + CCTK_REAL_VEC gt13L CCTK_ATTRIBUTE_UNUSED = vec_load(gt13[index]); |
3779 | + CCTK_REAL_VEC gt22L CCTK_ATTRIBUTE_UNUSED = vec_load(gt22[index]); |
3780 | + CCTK_REAL_VEC gt23L CCTK_ATTRIBUTE_UNUSED = vec_load(gt23[index]); |
3781 | + CCTK_REAL_VEC gt33L CCTK_ATTRIBUTE_UNUSED = vec_load(gt33[index]); |
3782 | + CCTK_REAL_VEC phiL CCTK_ATTRIBUTE_UNUSED = vec_load(phi[index]); |
3783 | + CCTK_REAL_VEC rL CCTK_ATTRIBUTE_UNUSED = vec_load(r[index]); |
3784 | + CCTK_REAL_VEC trKL CCTK_ATTRIBUTE_UNUSED = vec_load(trK[index]); |
3785 | + CCTK_REAL_VEC Xt1L CCTK_ATTRIBUTE_UNUSED = vec_load(Xt1[index]); |
3786 | + CCTK_REAL_VEC Xt2L CCTK_ATTRIBUTE_UNUSED = vec_load(Xt2[index]); |
3787 | + CCTK_REAL_VEC Xt3L CCTK_ATTRIBUTE_UNUSED = vec_load(Xt3[index]); |
3788 | + |
3789 | + CCTK_REAL_VEC eTttL, eTtxL, eTtyL, eTtzL, eTxxL, eTxyL, eTxzL, eTyyL, eTyzL, eTzzL CCTK_ATTRIBUTE_UNUSED ; |
3790 | + |
3791 | + if (*stress_energy_state) |
3792 | + { |
3793 | + eTttL = vec_load(eTtt[index]); |
3794 | + eTtxL = vec_load(eTtx[index]); |
3795 | + eTtyL = vec_load(eTty[index]); |
3796 | + eTtzL = vec_load(eTtz[index]); |
3797 | + eTxxL = vec_load(eTxx[index]); |
3798 | + eTxyL = vec_load(eTxy[index]); |
3799 | + eTxzL = vec_load(eTxz[index]); |
3800 | + eTyyL = vec_load(eTyy[index]); |
3801 | + eTyzL = vec_load(eTyz[index]); |
3802 | + eTzzL = vec_load(eTzz[index]); |
3803 | + } |
3804 | + else |
3805 | + { |
3806 | + eTttL = ToReal(0.0); |
3807 | + eTtxL = ToReal(0.0); |
3808 | + eTtyL = ToReal(0.0); |
3809 | + eTtzL = ToReal(0.0); |
3810 | + eTxxL = ToReal(0.0); |
3811 | + eTxyL = ToReal(0.0); |
3812 | + eTxzL = ToReal(0.0); |
3813 | + eTyyL = ToReal(0.0); |
3814 | + eTyzL = ToReal(0.0); |
3815 | + eTzzL = ToReal(0.0); |
3816 | + } |
3817 | + |
3818 | + CCTK_REAL_VEC dJ111L, dJ112L, dJ113L, dJ122L, dJ123L, dJ133L, dJ211L, dJ212L, dJ213L, dJ222L, dJ223L, dJ233L, dJ311L, dJ312L, dJ313L, dJ322L, dJ323L, dJ333L, J11L, J12L, J13L, J21L, J22L, J23L, J31L, J32L, J33L CCTK_ATTRIBUTE_UNUSED ; |
3819 | + |
3820 | + if (use_jacobian) |
3821 | + { |
3822 | + dJ111L = vec_load(dJ111[index]); |
3823 | + dJ112L = vec_load(dJ112[index]); |
3824 | + dJ113L = vec_load(dJ113[index]); |
3825 | + dJ122L = vec_load(dJ122[index]); |
3826 | + dJ123L = vec_load(dJ123[index]); |
3827 | + dJ133L = vec_load(dJ133[index]); |
3828 | + dJ211L = vec_load(dJ211[index]); |
3829 | + dJ212L = vec_load(dJ212[index]); |
3830 | + dJ213L = vec_load(dJ213[index]); |
3831 | + dJ222L = vec_load(dJ222[index]); |
3832 | + dJ223L = vec_load(dJ223[index]); |
3833 | + dJ233L = vec_load(dJ233[index]); |
3834 | + dJ311L = vec_load(dJ311[index]); |
3835 | + dJ312L = vec_load(dJ312[index]); |
3836 | + dJ313L = vec_load(dJ313[index]); |
3837 | + dJ322L = vec_load(dJ322[index]); |
3838 | + dJ323L = vec_load(dJ323[index]); |
3839 | + dJ333L = vec_load(dJ333[index]); |
3840 | + J11L = vec_load(J11[index]); |
3841 | + J12L = vec_load(J12[index]); |
3842 | + J13L = vec_load(J13[index]); |
3843 | + J21L = vec_load(J21[index]); |
3844 | + J22L = vec_load(J22[index]); |
3845 | + J23L = vec_load(J23[index]); |
3846 | + J31L = vec_load(J31[index]); |
3847 | + J32L = vec_load(J32[index]); |
3848 | + J33L = vec_load(J33[index]); |
3849 | + } |
3850 | + |
3851 | + /* Include user supplied include files */ |
3852 | + |
3853 | + /* Precompute derivatives */ |
3854 | + CCTK_REAL_VEC PDstandardNth1alpha CCTK_ATTRIBUTE_UNUSED ; |
3855 | + CCTK_REAL_VEC PDstandardNth2alpha CCTK_ATTRIBUTE_UNUSED ; |
3856 | + CCTK_REAL_VEC PDstandardNth3alpha CCTK_ATTRIBUTE_UNUSED ; |
3857 | + CCTK_REAL_VEC PDstandardNth11alpha CCTK_ATTRIBUTE_UNUSED ; |
3858 | + CCTK_REAL_VEC PDstandardNth22alpha CCTK_ATTRIBUTE_UNUSED ; |
3859 | + CCTK_REAL_VEC PDstandardNth33alpha CCTK_ATTRIBUTE_UNUSED ; |
3860 | + CCTK_REAL_VEC PDstandardNth12alpha CCTK_ATTRIBUTE_UNUSED ; |
3861 | + CCTK_REAL_VEC PDstandardNth13alpha CCTK_ATTRIBUTE_UNUSED ; |
3862 | + CCTK_REAL_VEC PDstandardNth23alpha CCTK_ATTRIBUTE_UNUSED ; |
3863 | + CCTK_REAL_VEC PDstandardNth1beta1 CCTK_ATTRIBUTE_UNUSED ; |
3864 | + CCTK_REAL_VEC PDstandardNth2beta1 CCTK_ATTRIBUTE_UNUSED ; |
3865 | + CCTK_REAL_VEC PDstandardNth3beta1 CCTK_ATTRIBUTE_UNUSED ; |
3866 | + CCTK_REAL_VEC PDstandardNth11beta1 CCTK_ATTRIBUTE_UNUSED ; |
3867 | + CCTK_REAL_VEC PDstandardNth22beta1 CCTK_ATTRIBUTE_UNUSED ; |
3868 | + CCTK_REAL_VEC PDstandardNth33beta1 CCTK_ATTRIBUTE_UNUSED ; |
3869 | + CCTK_REAL_VEC PDstandardNth12beta1 CCTK_ATTRIBUTE_UNUSED ; |
3870 | + CCTK_REAL_VEC PDstandardNth13beta1 CCTK_ATTRIBUTE_UNUSED ; |
3871 | + CCTK_REAL_VEC PDstandardNth23beta1 CCTK_ATTRIBUTE_UNUSED ; |
3872 | + CCTK_REAL_VEC PDstandardNth1beta2 CCTK_ATTRIBUTE_UNUSED ; |
3873 | + CCTK_REAL_VEC PDstandardNth2beta2 CCTK_ATTRIBUTE_UNUSED ; |
3874 | + CCTK_REAL_VEC PDstandardNth3beta2 CCTK_ATTRIBUTE_UNUSED ; |
3875 | + CCTK_REAL_VEC PDstandardNth11beta2 CCTK_ATTRIBUTE_UNUSED ; |
3876 | + CCTK_REAL_VEC PDstandardNth22beta2 CCTK_ATTRIBUTE_UNUSED ; |
3877 | + CCTK_REAL_VEC PDstandardNth33beta2 CCTK_ATTRIBUTE_UNUSED ; |
3878 | + CCTK_REAL_VEC PDstandardNth12beta2 CCTK_ATTRIBUTE_UNUSED ; |
3879 | + CCTK_REAL_VEC PDstandardNth13beta2 CCTK_ATTRIBUTE_UNUSED ; |
3880 | + CCTK_REAL_VEC PDstandardNth23beta2 CCTK_ATTRIBUTE_UNUSED ; |
3881 | + CCTK_REAL_VEC PDstandardNth1beta3 CCTK_ATTRIBUTE_UNUSED ; |
3882 | + CCTK_REAL_VEC PDstandardNth2beta3 CCTK_ATTRIBUTE_UNUSED ; |
3883 | + CCTK_REAL_VEC PDstandardNth3beta3 CCTK_ATTRIBUTE_UNUSED ; |
3884 | + CCTK_REAL_VEC PDstandardNth11beta3 CCTK_ATTRIBUTE_UNUSED ; |
3885 | + CCTK_REAL_VEC PDstandardNth22beta3 CCTK_ATTRIBUTE_UNUSED ; |
3886 | + CCTK_REAL_VEC PDstandardNth33beta3 CCTK_ATTRIBUTE_UNUSED ; |
3887 | + CCTK_REAL_VEC PDstandardNth12beta3 CCTK_ATTRIBUTE_UNUSED ; |
3888 | + CCTK_REAL_VEC PDstandardNth13beta3 CCTK_ATTRIBUTE_UNUSED ; |
3889 | + CCTK_REAL_VEC PDstandardNth23beta3 CCTK_ATTRIBUTE_UNUSED ; |
3890 | + CCTK_REAL_VEC PDstandardNth1gt11 CCTK_ATTRIBUTE_UNUSED ; |
3891 | + CCTK_REAL_VEC PDstandardNth2gt11 CCTK_ATTRIBUTE_UNUSED ; |
3892 | + CCTK_REAL_VEC PDstandardNth3gt11 CCTK_ATTRIBUTE_UNUSED ; |
3893 | + CCTK_REAL_VEC PDstandardNth1gt12 CCTK_ATTRIBUTE_UNUSED ; |
3894 | + CCTK_REAL_VEC PDstandardNth2gt12 CCTK_ATTRIBUTE_UNUSED ; |
3895 | + CCTK_REAL_VEC PDstandardNth3gt12 CCTK_ATTRIBUTE_UNUSED ; |
3896 | + CCTK_REAL_VEC PDstandardNth1gt13 CCTK_ATTRIBUTE_UNUSED ; |
3897 | + CCTK_REAL_VEC PDstandardNth2gt13 CCTK_ATTRIBUTE_UNUSED ; |
3898 | + CCTK_REAL_VEC PDstandardNth3gt13 CCTK_ATTRIBUTE_UNUSED ; |
3899 | + CCTK_REAL_VEC PDstandardNth1gt22 CCTK_ATTRIBUTE_UNUSED ; |
3900 | + CCTK_REAL_VEC PDstandardNth2gt22 CCTK_ATTRIBUTE_UNUSED ; |
3901 | + CCTK_REAL_VEC PDstandardNth3gt22 CCTK_ATTRIBUTE_UNUSED ; |
3902 | + CCTK_REAL_VEC PDstandardNth1gt23 CCTK_ATTRIBUTE_UNUSED ; |
3903 | + CCTK_REAL_VEC PDstandardNth2gt23 CCTK_ATTRIBUTE_UNUSED ; |
3904 | + CCTK_REAL_VEC PDstandardNth3gt23 CCTK_ATTRIBUTE_UNUSED ; |
3905 | + CCTK_REAL_VEC PDstandardNth1gt33 CCTK_ATTRIBUTE_UNUSED ; |
3906 | + CCTK_REAL_VEC PDstandardNth2gt33 CCTK_ATTRIBUTE_UNUSED ; |
3907 | + CCTK_REAL_VEC PDstandardNth3gt33 CCTK_ATTRIBUTE_UNUSED ; |
3908 | + CCTK_REAL_VEC PDstandardNth1phi CCTK_ATTRIBUTE_UNUSED ; |
3909 | + CCTK_REAL_VEC PDstandardNth2phi CCTK_ATTRIBUTE_UNUSED ; |
3910 | + CCTK_REAL_VEC PDstandardNth3phi CCTK_ATTRIBUTE_UNUSED ; |
3911 | + CCTK_REAL_VEC PDstandardNth1trK CCTK_ATTRIBUTE_UNUSED ; |
3912 | + CCTK_REAL_VEC PDstandardNth2trK CCTK_ATTRIBUTE_UNUSED ; |
3913 | + CCTK_REAL_VEC PDstandardNth3trK CCTK_ATTRIBUTE_UNUSED ; |
3914 | + |
3915 | + switch(fdOrder) |
3916 | + { |
3917 | + case 2: |
3918 | + PDstandardNth1alpha = PDstandardNthfdOrder21(&alpha[index]); |
3919 | + PDstandardNth2alpha = PDstandardNthfdOrder22(&alpha[index]); |
3920 | + PDstandardNth3alpha = PDstandardNthfdOrder23(&alpha[index]); |
3921 | + PDstandardNth11alpha = PDstandardNthfdOrder211(&alpha[index]); |
3922 | + PDstandardNth22alpha = PDstandardNthfdOrder222(&alpha[index]); |
3923 | + PDstandardNth33alpha = PDstandardNthfdOrder233(&alpha[index]); |
3924 | + PDstandardNth12alpha = PDstandardNthfdOrder212(&alpha[index]); |
3925 | + PDstandardNth13alpha = PDstandardNthfdOrder213(&alpha[index]); |
3926 | + PDstandardNth23alpha = PDstandardNthfdOrder223(&alpha[index]); |
3927 | + PDstandardNth1beta1 = PDstandardNthfdOrder21(&beta1[index]); |
3928 | + PDstandardNth2beta1 = PDstandardNthfdOrder22(&beta1[index]); |
3929 | + PDstandardNth3beta1 = PDstandardNthfdOrder23(&beta1[index]); |
3930 | + PDstandardNth11beta1 = PDstandardNthfdOrder211(&beta1[index]); |
3931 | + PDstandardNth22beta1 = PDstandardNthfdOrder222(&beta1[index]); |
3932 | + PDstandardNth33beta1 = PDstandardNthfdOrder233(&beta1[index]); |
3933 | + PDstandardNth12beta1 = PDstandardNthfdOrder212(&beta1[index]); |
3934 | + PDstandardNth13beta1 = PDstandardNthfdOrder213(&beta1[index]); |
3935 | + PDstandardNth23beta1 = PDstandardNthfdOrder223(&beta1[index]); |
3936 | + PDstandardNth1beta2 = PDstandardNthfdOrder21(&beta2[index]); |
3937 | + PDstandardNth2beta2 = PDstandardNthfdOrder22(&beta2[index]); |
3938 | + PDstandardNth3beta2 = PDstandardNthfdOrder23(&beta2[index]); |
3939 | + PDstandardNth11beta2 = PDstandardNthfdOrder211(&beta2[index]); |
3940 | + PDstandardNth22beta2 = PDstandardNthfdOrder222(&beta2[index]); |
3941 | + PDstandardNth33beta2 = PDstandardNthfdOrder233(&beta2[index]); |
3942 | + PDstandardNth12beta2 = PDstandardNthfdOrder212(&beta2[index]); |
3943 | + PDstandardNth13beta2 = PDstandardNthfdOrder213(&beta2[index]); |
3944 | + PDstandardNth23beta2 = PDstandardNthfdOrder223(&beta2[index]); |
3945 | + PDstandardNth1beta3 = PDstandardNthfdOrder21(&beta3[index]); |
3946 | + PDstandardNth2beta3 = PDstandardNthfdOrder22(&beta3[index]); |
3947 | + PDstandardNth3beta3 = PDstandardNthfdOrder23(&beta3[index]); |
3948 | + PDstandardNth11beta3 = PDstandardNthfdOrder211(&beta3[index]); |
3949 | + PDstandardNth22beta3 = PDstandardNthfdOrder222(&beta3[index]); |
3950 | + PDstandardNth33beta3 = PDstandardNthfdOrder233(&beta3[index]); |
3951 | + PDstandardNth12beta3 = PDstandardNthfdOrder212(&beta3[index]); |
3952 | + PDstandardNth13beta3 = PDstandardNthfdOrder213(&beta3[index]); |
3953 | + PDstandardNth23beta3 = PDstandardNthfdOrder223(&beta3[index]); |
3954 | + PDstandardNth1gt11 = PDstandardNthfdOrder21(>11[index]); |
3955 | + PDstandardNth2gt11 = PDstandardNthfdOrder22(>11[index]); |
3956 | + PDstandardNth3gt11 = PDstandardNthfdOrder23(>11[index]); |
3957 | + PDstandardNth1gt12 = PDstandardNthfdOrder21(>12[index]); |
3958 | + PDstandardNth2gt12 = PDstandardNthfdOrder22(>12[index]); |
3959 | + PDstandardNth3gt12 = PDstandardNthfdOrder23(>12[index]); |
3960 | + PDstandardNth1gt13 = PDstandardNthfdOrder21(>13[index]); |
3961 | + PDstandardNth2gt13 = PDstandardNthfdOrder22(>13[index]); |
3962 | + PDstandardNth3gt13 = PDstandardNthfdOrder23(>13[index]); |
3963 | + PDstandardNth1gt22 = PDstandardNthfdOrder21(>22[index]); |
3964 | + PDstandardNth2gt22 = PDstandardNthfdOrder22(>22[index]); |
3965 | + PDstandardNth3gt22 = PDstandardNthfdOrder23(>22[index]); |
3966 | + PDstandardNth1gt23 = PDstandardNthfdOrder21(>23[index]); |
3967 | + PDstandardNth2gt23 = PDstandardNthfdOrder22(>23[index]); |
3968 | + PDstandardNth3gt23 = PDstandardNthfdOrder23(>23[index]); |
3969 | + PDstandardNth1gt33 = PDstandardNthfdOrder21(>33[index]); |
3970 | + PDstandardNth2gt33 = PDstandardNthfdOrder22(>33[index]); |
3971 | + PDstandardNth3gt33 = PDstandardNthfdOrder23(>33[index]); |
3972 | + PDstandardNth1phi = PDstandardNthfdOrder21(&phi[index]); |
3973 | + PDstandardNth2phi = PDstandardNthfdOrder22(&phi[index]); |
3974 | + PDstandardNth3phi = PDstandardNthfdOrder23(&phi[index]); |
3975 | + PDstandardNth1trK = PDstandardNthfdOrder21(&trK[index]); |
3976 | + PDstandardNth2trK = PDstandardNthfdOrder22(&trK[index]); |
3977 | + PDstandardNth3trK = PDstandardNthfdOrder23(&trK[index]); |
3978 | + break; |
3979 | + |
3980 | + case 4: |
3981 | + PDstandardNth1alpha = PDstandardNthfdOrder41(&alpha[index]); |
3982 | + PDstandardNth2alpha = PDstandardNthfdOrder42(&alpha[index]); |
3983 | + PDstandardNth3alpha = PDstandardNthfdOrder43(&alpha[index]); |
3984 | + PDstandardNth11alpha = PDstandardNthfdOrder411(&alpha[index]); |
3985 | + PDstandardNth22alpha = PDstandardNthfdOrder422(&alpha[index]); |
3986 | + PDstandardNth33alpha = PDstandardNthfdOrder433(&alpha[index]); |
3987 | + PDstandardNth12alpha = PDstandardNthfdOrder412(&alpha[index]); |
3988 | + PDstandardNth13alpha = PDstandardNthfdOrder413(&alpha[index]); |
3989 | + PDstandardNth23alpha = PDstandardNthfdOrder423(&alpha[index]); |
3990 | + PDstandardNth1beta1 = PDstandardNthfdOrder41(&beta1[index]); |
3991 | + PDstandardNth2beta1 = PDstandardNthfdOrder42(&beta1[index]); |
3992 | + PDstandardNth3beta1 = PDstandardNthfdOrder43(&beta1[index]); |
3993 | + PDstandardNth11beta1 = PDstandardNthfdOrder411(&beta1[index]); |
3994 | + PDstandardNth22beta1 = PDstandardNthfdOrder422(&beta1[index]); |
3995 | + PDstandardNth33beta1 = PDstandardNthfdOrder433(&beta1[index]); |
3996 | + PDstandardNth12beta1 = PDstandardNthfdOrder412(&beta1[index]); |
3997 | + PDstandardNth13beta1 = PDstandardNthfdOrder413(&beta1[index]); |
3998 | + PDstandardNth23beta1 = PDstandardNthfdOrder423(&beta1[index]); |
3999 | + PDstandardNth1beta2 = PDstandardNthfdOrder41(&beta2[index]); |
4000 | + PDstandardNth2beta2 = PDstandardNthfdOrder42(&beta2[index]); |
4001 | + PDstandardNth3beta2 = PDstandardNthfdOrder43(&beta2[index]); |
4002 | + PDstandardNth11beta2 = PDstandardNthfdOrder411(&beta2[index]); |
4003 | + PDstandardNth22beta2 = PDstandardNthfdOrder422(&beta2[index]); |
4004 | + PDstandardNth33beta2 = PDstandardNthfdOrder433(&beta2[index]); |
4005 | + PDstandardNth12beta2 = PDstandardNthfdOrder412(&beta2[index]); |
4006 | + PDstandardNth13beta2 = PDstandardNthfdOrder413(&beta2[index]); |
4007 | + PDstandardNth23beta2 = PDstandardNthfdOrder423(&beta2[index]); |
4008 | + PDstandardNth1beta3 = PDstandardNthfdOrder41(&beta3[index]); |
4009 | + PDstandardNth2beta3 = PDstandardNthfdOrder42(&beta3[index]); |
4010 | + PDstandardNth3beta3 = PDstandardNthfdOrder43(&beta3[index]); |
4011 | + PDstandardNth11beta3 = PDstandardNthfdOrder411(&beta3[index]); |
4012 | + PDstandardNth22beta3 = PDstandardNthfdOrder422(&beta3[index]); |
4013 | + PDstandardNth33beta3 = PDstandardNthfdOrder433(&beta3[index]); |
4014 | + PDstandardNth12beta3 = PDstandardNthfdOrder412(&beta3[index]); |
4015 | + PDstandardNth13beta3 = PDstandardNthfdOrder413(&beta3[index]); |
4016 | + PDstandardNth23beta3 = PDstandardNthfdOrder423(&beta3[index]); |
4017 | + PDstandardNth1gt11 = PDstandardNthfdOrder41(>11[index]); |
4018 | + PDstandardNth2gt11 = PDstandardNthfdOrder42(>11[index]); |
4019 | + PDstandardNth3gt11 = PDstandardNthfdOrder43(>11[index]); |
4020 | + PDstandardNth1gt12 = PDstandardNthfdOrder41(>12[index]); |
4021 | + PDstandardNth2gt12 = PDstandardNthfdOrder42(>12[index]); |
4022 | + PDstandardNth3gt12 = PDstandardNthfdOrder43(>12[index]); |
4023 | + PDstandardNth1gt13 = PDstandardNthfdOrder41(>13[index]); |
4024 | + PDstandardNth2gt13 = PDstandardNthfdOrder42(>13[index]); |
4025 | + PDstandardNth3gt13 = PDstandardNthfdOrder43(>13[index]); |
4026 | + PDstandardNth1gt22 = PDstandardNthfdOrder41(>22[index]); |
4027 | + PDstandardNth2gt22 = PDstandardNthfdOrder42(>22[index]); |
4028 | + PDstandardNth3gt22 = PDstandardNthfdOrder43(>22[index]); |
4029 | + PDstandardNth1gt23 = PDstandardNthfdOrder41(>23[index]); |
4030 | + PDstandardNth2gt23 = PDstandardNthfdOrder42(>23[index]); |
4031 | + PDstandardNth3gt23 = PDstandardNthfdOrder43(>23[index]); |
4032 | + PDstandardNth1gt33 = PDstandardNthfdOrder41(>33[index]); |
4033 | + PDstandardNth2gt33 = PDstandardNthfdOrder42(>33[index]); |
4034 | + PDstandardNth3gt33 = PDstandardNthfdOrder43(>33[index]); |
4035 | + PDstandardNth1phi = PDstandardNthfdOrder41(&phi[index]); |
4036 | + PDstandardNth2phi = PDstandardNthfdOrder42(&phi[index]); |
4037 | + PDstandardNth3phi = PDstandardNthfdOrder43(&phi[index]); |
4038 | + PDstandardNth1trK = PDstandardNthfdOrder41(&trK[index]); |
4039 | + PDstandardNth2trK = PDstandardNthfdOrder42(&trK[index]); |
4040 | + PDstandardNth3trK = PDstandardNthfdOrder43(&trK[index]); |
4041 | + break; |
4042 | + |
4043 | + case 6: |
4044 | + PDstandardNth1alpha = PDstandardNthfdOrder61(&alpha[index]); |
4045 | + PDstandardNth2alpha = PDstandardNthfdOrder62(&alpha[index]); |
4046 | + PDstandardNth3alpha = PDstandardNthfdOrder63(&alpha[index]); |
4047 | + PDstandardNth11alpha = PDstandardNthfdOrder611(&alpha[index]); |
4048 | + PDstandardNth22alpha = PDstandardNthfdOrder622(&alpha[index]); |
4049 | + PDstandardNth33alpha = PDstandardNthfdOrder633(&alpha[index]); |
4050 | + PDstandardNth12alpha = PDstandardNthfdOrder612(&alpha[index]); |
4051 | + PDstandardNth13alpha = PDstandardNthfdOrder613(&alpha[index]); |
4052 | + PDstandardNth23alpha = PDstandardNthfdOrder623(&alpha[index]); |
4053 | + PDstandardNth1beta1 = PDstandardNthfdOrder61(&beta1[index]); |
4054 | + PDstandardNth2beta1 = PDstandardNthfdOrder62(&beta1[index]); |
4055 | + PDstandardNth3beta1 = PDstandardNthfdOrder63(&beta1[index]); |
4056 | + PDstandardNth11beta1 = PDstandardNthfdOrder611(&beta1[index]); |
4057 | + PDstandardNth22beta1 = PDstandardNthfdOrder622(&beta1[index]); |
4058 | + PDstandardNth33beta1 = PDstandardNthfdOrder633(&beta1[index]); |
4059 | + PDstandardNth12beta1 = PDstandardNthfdOrder612(&beta1[index]); |
4060 | + PDstandardNth13beta1 = PDstandardNthfdOrder613(&beta1[index]); |
4061 | + PDstandardNth23beta1 = PDstandardNthfdOrder623(&beta1[index]); |
4062 | + PDstandardNth1beta2 = PDstandardNthfdOrder61(&beta2[index]); |
4063 | + PDstandardNth2beta2 = PDstandardNthfdOrder62(&beta2[index]); |
4064 | + PDstandardNth3beta2 = PDstandardNthfdOrder63(&beta2[index]); |
4065 | + PDstandardNth11beta2 = PDstandardNthfdOrder611(&beta2[index]); |
4066 | + PDstandardNth22beta2 = PDstandardNthfdOrder622(&beta2[index]); |
4067 | + PDstandardNth33beta2 = PDstandardNthfdOrder633(&beta2[index]); |
4068 | + PDstandardNth12beta2 = PDstandardNthfdOrder612(&beta2[index]); |
4069 | + PDstandardNth13beta2 = PDstandardNthfdOrder613(&beta2[index]); |
4070 | + PDstandardNth23beta2 = PDstandardNthfdOrder623(&beta2[index]); |
4071 | + PDstandardNth1beta3 = PDstandardNthfdOrder61(&beta3[index]); |
4072 | + PDstandardNth2beta3 = PDstandardNthfdOrder62(&beta3[index]); |
4073 | + PDstandardNth3beta3 = PDstandardNthfdOrder63(&beta3[index]); |
4074 | + PDstandardNth11beta3 = PDstandardNthfdOrder611(&beta3[index]); |
4075 | + PDstandardNth22beta3 = PDstandardNthfdOrder622(&beta3[index]); |
4076 | + PDstandardNth33beta3 = PDstandardNthfdOrder633(&beta3[index]); |
4077 | + PDstandardNth12beta3 = PDstandardNthfdOrder612(&beta3[index]); |
4078 | + PDstandardNth13beta3 = PDstandardNthfdOrder613(&beta3[index]); |
4079 | + PDstandardNth23beta3 = PDstandardNthfdOrder623(&beta3[index]); |
4080 | + PDstandardNth1gt11 = PDstandardNthfdOrder61(>11[index]); |
4081 | + PDstandardNth2gt11 = PDstandardNthfdOrder62(>11[index]); |
4082 | + PDstandardNth3gt11 = PDstandardNthfdOrder63(>11[index]); |
4083 | + PDstandardNth1gt12 = PDstandardNthfdOrder61(>12[index]); |
4084 | + PDstandardNth2gt12 = PDstandardNthfdOrder62(>12[index]); |
4085 | + PDstandardNth3gt12 = PDstandardNthfdOrder63(>12[index]); |
4086 | + PDstandardNth1gt13 = PDstandardNthfdOrder61(>13[index]); |
4087 | + PDstandardNth2gt13 = PDstandardNthfdOrder62(>13[index]); |
4088 | + PDstandardNth3gt13 = PDstandardNthfdOrder63(>13[index]); |
4089 | + PDstandardNth1gt22 = PDstandardNthfdOrder61(>22[index]); |
4090 | + PDstandardNth2gt22 = PDstandardNthfdOrder62(>22[index]); |
4091 | + PDstandardNth3gt22 = PDstandardNthfdOrder63(>22[index]); |
4092 | + PDstandardNth1gt23 = PDstandardNthfdOrder61(>23[index]); |
4093 | + PDstandardNth2gt23 = PDstandardNthfdOrder62(>23[index]); |
4094 | + PDstandardNth3gt23 = PDstandardNthfdOrder63(>23[index]); |
4095 | + PDstandardNth1gt33 = PDstandardNthfdOrder61(>33[index]); |
4096 | + PDstandardNth2gt33 = PDstandardNthfdOrder62(>33[index]); |
4097 | + PDstandardNth3gt33 = PDstandardNthfdOrder63(>33[index]); |
4098 | + PDstandardNth1phi = PDstandardNthfdOrder61(&phi[index]); |
4099 | + PDstandardNth2phi = PDstandardNthfdOrder62(&phi[index]); |
4100 | + PDstandardNth3phi = PDstandardNthfdOrder63(&phi[index]); |
4101 | + PDstandardNth1trK = PDstandardNthfdOrder61(&trK[index]); |
4102 | + PDstandardNth2trK = PDstandardNthfdOrder62(&trK[index]); |
4103 | + PDstandardNth3trK = PDstandardNthfdOrder63(&trK[index]); |
4104 | + break; |
4105 | + |
4106 | + case 8: |
4107 | + PDstandardNth1alpha = PDstandardNthfdOrder81(&alpha[index]); |
4108 | + PDstandardNth2alpha = PDstandardNthfdOrder82(&alpha[index]); |
4109 | + PDstandardNth3alpha = PDstandardNthfdOrder83(&alpha[index]); |
4110 | + PDstandardNth11alpha = PDstandardNthfdOrder811(&alpha[index]); |
4111 | + PDstandardNth22alpha = PDstandardNthfdOrder822(&alpha[index]); |
4112 | + PDstandardNth33alpha = PDstandardNthfdOrder833(&alpha[index]); |
4113 | + PDstandardNth12alpha = PDstandardNthfdOrder812(&alpha[index]); |
4114 | + PDstandardNth13alpha = PDstandardNthfdOrder813(&alpha[index]); |
4115 | + PDstandardNth23alpha = PDstandardNthfdOrder823(&alpha[index]); |
4116 | + PDstandardNth1beta1 = PDstandardNthfdOrder81(&beta1[index]); |
4117 | + PDstandardNth2beta1 = PDstandardNthfdOrder82(&beta1[index]); |
4118 | + PDstandardNth3beta1 = PDstandardNthfdOrder83(&beta1[index]); |
4119 | + PDstandardNth11beta1 = PDstandardNthfdOrder811(&beta1[index]); |
4120 | + PDstandardNth22beta1 = PDstandardNthfdOrder822(&beta1[index]); |
4121 | + PDstandardNth33beta1 = PDstandardNthfdOrder833(&beta1[index]); |
4122 | + PDstandardNth12beta1 = PDstandardNthfdOrder812(&beta1[index]); |
4123 | + PDstandardNth13beta1 = PDstandardNthfdOrder813(&beta1[index]); |
4124 | + PDstandardNth23beta1 = PDstandardNthfdOrder823(&beta1[index]); |
4125 | + PDstandardNth1beta2 = PDstandardNthfdOrder81(&beta2[index]); |
4126 | + PDstandardNth2beta2 = PDstandardNthfdOrder82(&beta2[index]); |
4127 | + PDstandardNth3beta2 = PDstandardNthfdOrder83(&beta2[index]); |
4128 | + PDstandardNth11beta2 = PDstandardNthfdOrder811(&beta2[index]); |
4129 | + PDstandardNth22beta2 = PDstandardNthfdOrder822(&beta2[index]); |
4130 | + PDstandardNth33beta2 = PDstandardNthfdOrder833(&beta2[index]); |
4131 | + PDstandardNth12beta2 = PDstandardNthfdOrder812(&beta2[index]); |
4132 | + PDstandardNth13beta2 = PDstandardNthfdOrder813(&beta2[index]); |
4133 | + PDstandardNth23beta2 = PDstandardNthfdOrder823(&beta2[index]); |
4134 | + PDstandardNth1beta3 = PDstandardNthfdOrder81(&beta3[index]); |
4135 | + PDstandardNth2beta3 = PDstandardNthfdOrder82(&beta3[index]); |
4136 | + PDstandardNth3beta3 = PDstandardNthfdOrder83(&beta3[index]); |
4137 | + PDstandardNth11beta3 = PDstandardNthfdOrder811(&beta3[index]); |
4138 | + PDstandardNth22beta3 = PDstandardNthfdOrder822(&beta3[index]); |
4139 | + PDstandardNth33beta3 = PDstandardNthfdOrder833(&beta3[index]); |
4140 | + PDstandardNth12beta3 = PDstandardNthfdOrder812(&beta3[index]); |
4141 | + PDstandardNth13beta3 = PDstandardNthfdOrder813(&beta3[index]); |
4142 | + PDstandardNth23beta3 = PDstandardNthfdOrder823(&beta3[index]); |
4143 | + PDstandardNth1gt11 = PDstandardNthfdOrder81(>11[index]); |
4144 | + PDstandardNth2gt11 = PDstandardNthfdOrder82(>11[index]); |
4145 | + PDstandardNth3gt11 = PDstandardNthfdOrder83(>11[index]); |
4146 | + PDstandardNth1gt12 = PDstandardNthfdOrder81(>12[index]); |
4147 | + PDstandardNth2gt12 = PDstandardNthfdOrder82(>12[index]); |
4148 | + PDstandardNth3gt12 = PDstandardNthfdOrder83(>12[index]); |
4149 | + PDstandardNth1gt13 = PDstandardNthfdOrder81(>13[index]); |
4150 | + PDstandardNth2gt13 = PDstandardNthfdOrder82(>13[index]); |
4151 | + PDstandardNth3gt13 = PDstandardNthfdOrder83(>13[index]); |
4152 | + PDstandardNth1gt22 = PDstandardNthfdOrder81(>22[index]); |
4153 | + PDstandardNth2gt22 = PDstandardNthfdOrder82(>22[index]); |
4154 | + PDstandardNth3gt22 = PDstandardNthfdOrder83(>22[index]); |
4155 | + PDstandardNth1gt23 = PDstandardNthfdOrder81(>23[index]); |
4156 | + PDstandardNth2gt23 = PDstandardNthfdOrder82(>23[index]); |
4157 | + PDstandardNth3gt23 = PDstandardNthfdOrder83(>23[index]); |
4158 | + PDstandardNth1gt33 = PDstandardNthfdOrder81(>33[index]); |
4159 | + PDstandardNth2gt33 = PDstandardNthfdOrder82(>33[index]); |
4160 | + PDstandardNth3gt33 = PDstandardNthfdOrder83(>33[index]); |
4161 | + PDstandardNth1phi = PDstandardNthfdOrder81(&phi[index]); |
4162 | + PDstandardNth2phi = PDstandardNthfdOrder82(&phi[index]); |
4163 | + PDstandardNth3phi = PDstandardNthfdOrder83(&phi[index]); |
4164 | + PDstandardNth1trK = PDstandardNthfdOrder81(&trK[index]); |
4165 | + PDstandardNth2trK = PDstandardNthfdOrder82(&trK[index]); |
4166 | + PDstandardNth3trK = PDstandardNthfdOrder83(&trK[index]); |
4167 | + break; |
4168 | + } |
4169 | + |
4170 | + /* Calculate temporaries and grid functions */ |
4171 | + CCTK_REAL_VEC JacPDstandardNth11alpha CCTK_ATTRIBUTE_UNUSED ; |
4172 | + CCTK_REAL_VEC JacPDstandardNth11beta1 CCTK_ATTRIBUTE_UNUSED ; |
4173 | + CCTK_REAL_VEC JacPDstandardNth11beta2 CCTK_ATTRIBUTE_UNUSED ; |
4174 | + CCTK_REAL_VEC JacPDstandardNth11beta3 CCTK_ATTRIBUTE_UNUSED ; |
4175 | + CCTK_REAL_VEC JacPDstandardNth12alpha CCTK_ATTRIBUTE_UNUSED ; |
4176 | + CCTK_REAL_VEC JacPDstandardNth12beta1 CCTK_ATTRIBUTE_UNUSED ; |
4177 | + CCTK_REAL_VEC JacPDstandardNth12beta2 CCTK_ATTRIBUTE_UNUSED ; |
4178 | + CCTK_REAL_VEC JacPDstandardNth12beta3 CCTK_ATTRIBUTE_UNUSED ; |
4179 | + CCTK_REAL_VEC JacPDstandardNth13alpha CCTK_ATTRIBUTE_UNUSED ; |
4180 | + CCTK_REAL_VEC JacPDstandardNth13beta1 CCTK_ATTRIBUTE_UNUSED ; |
4181 | + CCTK_REAL_VEC JacPDstandardNth13beta2 CCTK_ATTRIBUTE_UNUSED ; |
4182 | + CCTK_REAL_VEC JacPDstandardNth13beta3 CCTK_ATTRIBUTE_UNUSED ; |
4183 | + CCTK_REAL_VEC JacPDstandardNth1alpha CCTK_ATTRIBUTE_UNUSED ; |
4184 | + CCTK_REAL_VEC JacPDstandardNth1beta1 CCTK_ATTRIBUTE_UNUSED ; |
4185 | + CCTK_REAL_VEC JacPDstandardNth1beta2 CCTK_ATTRIBUTE_UNUSED ; |
4186 | + CCTK_REAL_VEC JacPDstandardNth1beta3 CCTK_ATTRIBUTE_UNUSED ; |
4187 | + CCTK_REAL_VEC JacPDstandardNth1gt11 CCTK_ATTRIBUTE_UNUSED ; |
4188 | + CCTK_REAL_VEC JacPDstandardNth1gt12 CCTK_ATTRIBUTE_UNUSED ; |
4189 | + CCTK_REAL_VEC JacPDstandardNth1gt13 CCTK_ATTRIBUTE_UNUSED ; |
4190 | + CCTK_REAL_VEC JacPDstandardNth1gt22 CCTK_ATTRIBUTE_UNUSED ; |
4191 | + CCTK_REAL_VEC JacPDstandardNth1gt23 CCTK_ATTRIBUTE_UNUSED ; |
4192 | + CCTK_REAL_VEC JacPDstandardNth1gt33 CCTK_ATTRIBUTE_UNUSED ; |
4193 | + CCTK_REAL_VEC JacPDstandardNth1phi CCTK_ATTRIBUTE_UNUSED ; |
4194 | + CCTK_REAL_VEC JacPDstandardNth1trK CCTK_ATTRIBUTE_UNUSED ; |
4195 | + CCTK_REAL_VEC JacPDstandardNth21alpha CCTK_ATTRIBUTE_UNUSED ; |
4196 | + CCTK_REAL_VEC JacPDstandardNth21beta1 CCTK_ATTRIBUTE_UNUSED ; |
4197 | + CCTK_REAL_VEC JacPDstandardNth21beta2 CCTK_ATTRIBUTE_UNUSED ; |
4198 | + CCTK_REAL_VEC JacPDstandardNth21beta3 CCTK_ATTRIBUTE_UNUSED ; |
4199 | + CCTK_REAL_VEC JacPDstandardNth22alpha CCTK_ATTRIBUTE_UNUSED ; |
4200 | + CCTK_REAL_VEC JacPDstandardNth22beta1 CCTK_ATTRIBUTE_UNUSED ; |
4201 | + CCTK_REAL_VEC JacPDstandardNth22beta2 CCTK_ATTRIBUTE_UNUSED ; |
4202 | + CCTK_REAL_VEC JacPDstandardNth22beta3 CCTK_ATTRIBUTE_UNUSED ; |
4203 | + CCTK_REAL_VEC JacPDstandardNth23alpha CCTK_ATTRIBUTE_UNUSED ; |
4204 | + CCTK_REAL_VEC JacPDstandardNth23beta1 CCTK_ATTRIBUTE_UNUSED ; |
4205 | + CCTK_REAL_VEC JacPDstandardNth23beta2 CCTK_ATTRIBUTE_UNUSED ; |
4206 | + CCTK_REAL_VEC JacPDstandardNth23beta3 CCTK_ATTRIBUTE_UNUSED ; |
4207 | + CCTK_REAL_VEC JacPDstandardNth2alpha CCTK_ATTRIBUTE_UNUSED ; |
4208 | + CCTK_REAL_VEC JacPDstandardNth2beta1 CCTK_ATTRIBUTE_UNUSED ; |
4209 | + CCTK_REAL_VEC JacPDstandardNth2beta2 CCTK_ATTRIBUTE_UNUSED ; |
4210 | + CCTK_REAL_VEC JacPDstandardNth2beta3 CCTK_ATTRIBUTE_UNUSED ; |
4211 | + CCTK_REAL_VEC JacPDstandardNth2gt11 CCTK_ATTRIBUTE_UNUSED ; |
4212 | + CCTK_REAL_VEC JacPDstandardNth2gt12 CCTK_ATTRIBUTE_UNUSED ; |
4213 | + CCTK_REAL_VEC JacPDstandardNth2gt13 CCTK_ATTRIBUTE_UNUSED ; |
4214 | + CCTK_REAL_VEC JacPDstandardNth2gt22 CCTK_ATTRIBUTE_UNUSED ; |
4215 | + CCTK_REAL_VEC JacPDstandardNth2gt23 CCTK_ATTRIBUTE_UNUSED ; |
4216 | + CCTK_REAL_VEC JacPDstandardNth2gt33 CCTK_ATTRIBUTE_UNUSED ; |
4217 | + CCTK_REAL_VEC JacPDstandardNth2phi CCTK_ATTRIBUTE_UNUSED ; |
4218 | + CCTK_REAL_VEC JacPDstandardNth2trK CCTK_ATTRIBUTE_UNUSED ; |
4219 | + CCTK_REAL_VEC JacPDstandardNth31alpha CCTK_ATTRIBUTE_UNUSED ; |
4220 | + CCTK_REAL_VEC JacPDstandardNth31beta1 CCTK_ATTRIBUTE_UNUSED ; |
4221 | + CCTK_REAL_VEC JacPDstandardNth31beta2 CCTK_ATTRIBUTE_UNUSED ; |
4222 | + CCTK_REAL_VEC JacPDstandardNth31beta3 CCTK_ATTRIBUTE_UNUSED ; |
4223 | + CCTK_REAL_VEC JacPDstandardNth32alpha CCTK_ATTRIBUTE_UNUSED ; |
4224 | + CCTK_REAL_VEC JacPDstandardNth32beta1 CCTK_ATTRIBUTE_UNUSED ; |
4225 | + CCTK_REAL_VEC JacPDstandardNth32beta2 CCTK_ATTRIBUTE_UNUSED ; |
4226 | + CCTK_REAL_VEC JacPDstandardNth32beta3 CCTK_ATTRIBUTE_UNUSED ; |
4227 | + CCTK_REAL_VEC JacPDstandardNth33alpha CCTK_ATTRIBUTE_UNUSED ; |
4228 | + CCTK_REAL_VEC JacPDstandardNth33beta1 CCTK_ATTRIBUTE_UNUSED ; |
4229 | + CCTK_REAL_VEC JacPDstandardNth33beta2 CCTK_ATTRIBUTE_UNUSED ; |
4230 | + CCTK_REAL_VEC JacPDstandardNth33beta3 CCTK_ATTRIBUTE_UNUSED ; |
4231 | + CCTK_REAL_VEC JacPDstandardNth3alpha CCTK_ATTRIBUTE_UNUSED ; |
4232 | + CCTK_REAL_VEC JacPDstandardNth3beta1 CCTK_ATTRIBUTE_UNUSED ; |
4233 | + CCTK_REAL_VEC JacPDstandardNth3beta2 CCTK_ATTRIBUTE_UNUSED ; |
4234 | + CCTK_REAL_VEC JacPDstandardNth3beta3 CCTK_ATTRIBUTE_UNUSED ; |
4235 | + CCTK_REAL_VEC JacPDstandardNth3gt11 CCTK_ATTRIBUTE_UNUSED ; |
4236 | + CCTK_REAL_VEC JacPDstandardNth3gt12 CCTK_ATTRIBUTE_UNUSED ; |
4237 | + CCTK_REAL_VEC JacPDstandardNth3gt13 CCTK_ATTRIBUTE_UNUSED ; |
4238 | + CCTK_REAL_VEC JacPDstandardNth3gt22 CCTK_ATTRIBUTE_UNUSED ; |
4239 | + CCTK_REAL_VEC JacPDstandardNth3gt23 CCTK_ATTRIBUTE_UNUSED ; |
4240 | + CCTK_REAL_VEC JacPDstandardNth3gt33 CCTK_ATTRIBUTE_UNUSED ; |
4241 | + CCTK_REAL_VEC JacPDstandardNth3phi CCTK_ATTRIBUTE_UNUSED ; |
4242 | + CCTK_REAL_VEC JacPDstandardNth3trK CCTK_ATTRIBUTE_UNUSED ; |
4243 | + |
4244 | + if (use_jacobian) |
4245 | + { |
4246 | + JacPDstandardNth1alpha = |
4247 | + kmadd(J11L,PDstandardNth1alpha,kmadd(J21L,PDstandardNth2alpha,kmul(J31L,PDstandardNth3alpha))); |
4248 | + |
4249 | + JacPDstandardNth1beta1 = |
4250 | + kmadd(J11L,PDstandardNth1beta1,kmadd(J21L,PDstandardNth2beta1,kmul(J31L,PDstandardNth3beta1))); |
4251 | + |
4252 | + JacPDstandardNth1beta2 = |
4253 | + kmadd(J11L,PDstandardNth1beta2,kmadd(J21L,PDstandardNth2beta2,kmul(J31L,PDstandardNth3beta2))); |
4254 | + |
4255 | + JacPDstandardNth1beta3 = |
4256 | + kmadd(J11L,PDstandardNth1beta3,kmadd(J21L,PDstandardNth2beta3,kmul(J31L,PDstandardNth3beta3))); |
4257 | + |
4258 | + JacPDstandardNth1gt11 = |
4259 | + kmadd(J11L,PDstandardNth1gt11,kmadd(J21L,PDstandardNth2gt11,kmul(J31L,PDstandardNth3gt11))); |
4260 | + |
4261 | + JacPDstandardNth1gt12 = |
4262 | + kmadd(J11L,PDstandardNth1gt12,kmadd(J21L,PDstandardNth2gt12,kmul(J31L,PDstandardNth3gt12))); |
4263 | + |
4264 | + JacPDstandardNth1gt13 = |
4265 | + kmadd(J11L,PDstandardNth1gt13,kmadd(J21L,PDstandardNth2gt13,kmul(J31L,PDstandardNth3gt13))); |
4266 | + |
4267 | + JacPDstandardNth1gt22 = |
4268 | + kmadd(J11L,PDstandardNth1gt22,kmadd(J21L,PDstandardNth2gt22,kmul(J31L,PDstandardNth3gt22))); |
4269 | + |
4270 | + JacPDstandardNth1gt23 = |
4271 | + kmadd(J11L,PDstandardNth1gt23,kmadd(J21L,PDstandardNth2gt23,kmul(J31L,PDstandardNth3gt23))); |
4272 | + |
4273 | + JacPDstandardNth1gt33 = |
4274 | + kmadd(J11L,PDstandardNth1gt33,kmadd(J21L,PDstandardNth2gt33,kmul(J31L,PDstandardNth3gt33))); |
4275 | + |
4276 | + JacPDstandardNth1phi = |
4277 | + kmadd(J11L,PDstandardNth1phi,kmadd(J21L,PDstandardNth2phi,kmul(J31L,PDstandardNth3phi))); |
4278 | + |
4279 | + JacPDstandardNth1trK = |
4280 | + kmadd(J11L,PDstandardNth1trK,kmadd(J21L,PDstandardNth2trK,kmul(J31L,PDstandardNth3trK))); |
4281 | + |
4282 | + JacPDstandardNth2alpha = |
4283 | + kmadd(J12L,PDstandardNth1alpha,kmadd(J22L,PDstandardNth2alpha,kmul(J32L,PDstandardNth3alpha))); |
4284 | + |
4285 | + JacPDstandardNth2beta1 = |
4286 | + kmadd(J12L,PDstandardNth1beta1,kmadd(J22L,PDstandardNth2beta1,kmul(J32L,PDstandardNth3beta1))); |
4287 | + |
4288 | + JacPDstandardNth2beta2 = |
4289 | + kmadd(J12L,PDstandardNth1beta2,kmadd(J22L,PDstandardNth2beta2,kmul(J32L,PDstandardNth3beta2))); |
4290 | + |
4291 | + JacPDstandardNth2beta3 = |
4292 | + kmadd(J12L,PDstandardNth1beta3,kmadd(J22L,PDstandardNth2beta3,kmul(J32L,PDstandardNth3beta3))); |
4293 | + |
4294 | + JacPDstandardNth2gt11 = |
4295 | + kmadd(J12L,PDstandardNth1gt11,kmadd(J22L,PDstandardNth2gt11,kmul(J32L,PDstandardNth3gt11))); |
4296 | + |
4297 | + JacPDstandardNth2gt12 = |
4298 | + kmadd(J12L,PDstandardNth1gt12,kmadd(J22L,PDstandardNth2gt12,kmul(J32L,PDstandardNth3gt12))); |
4299 | + |
4300 | + JacPDstandardNth2gt13 = |
4301 | + kmadd(J12L,PDstandardNth1gt13,kmadd(J22L,PDstandardNth2gt13,kmul(J32L,PDstandardNth3gt13))); |
4302 | + |
4303 | + JacPDstandardNth2gt22 = |
4304 | + kmadd(J12L,PDstandardNth1gt22,kmadd(J22L,PDstandardNth2gt22,kmul(J32L,PDstandardNth3gt22))); |
4305 | + |
4306 | + JacPDstandardNth2gt23 = |
4307 | + kmadd(J12L,PDstandardNth1gt23,kmadd(J22L,PDstandardNth2gt23,kmul(J32L,PDstandardNth3gt23))); |
4308 | + |
4309 | + JacPDstandardNth2gt33 = |
4310 | + kmadd(J12L,PDstandardNth1gt33,kmadd(J22L,PDstandardNth2gt33,kmul(J32L,PDstandardNth3gt33))); |
4311 | + |
4312 | + JacPDstandardNth2phi = |
4313 | + kmadd(J12L,PDstandardNth1phi,kmadd(J22L,PDstandardNth2phi,kmul(J32L,PDstandardNth3phi))); |
4314 | + |
4315 | + JacPDstandardNth2trK = |
4316 | + kmadd(J12L,PDstandardNth1trK,kmadd(J22L,PDstandardNth2trK,kmul(J32L,PDstandardNth3trK))); |
4317 | + |
4318 | + JacPDstandardNth3alpha = |
4319 | + kmadd(J13L,PDstandardNth1alpha,kmadd(J23L,PDstandardNth2alpha,kmul(J33L,PDstandardNth3alpha))); |
4320 | + |
4321 | + JacPDstandardNth3beta1 = |
4322 | + kmadd(J13L,PDstandardNth1beta1,kmadd(J23L,PDstandardNth2beta1,kmul(J33L,PDstandardNth3beta1))); |
4323 | + |
4324 | + JacPDstandardNth3beta2 = |
4325 | + kmadd(J13L,PDstandardNth1beta2,kmadd(J23L,PDstandardNth2beta2,kmul(J33L,PDstandardNth3beta2))); |
4326 | + |
4327 | + JacPDstandardNth3beta3 = |
4328 | + kmadd(J13L,PDstandardNth1beta3,kmadd(J23L,PDstandardNth2beta3,kmul(J33L,PDstandardNth3beta3))); |
4329 | + |
4330 | + JacPDstandardNth3gt11 = |
4331 | + kmadd(J13L,PDstandardNth1gt11,kmadd(J23L,PDstandardNth2gt11,kmul(J33L,PDstandardNth3gt11))); |
4332 | + |
4333 | + JacPDstandardNth3gt12 = |
4334 | + kmadd(J13L,PDstandardNth1gt12,kmadd(J23L,PDstandardNth2gt12,kmul(J33L,PDstandardNth3gt12))); |
4335 | + |
4336 | + JacPDstandardNth3gt13 = |
4337 | + kmadd(J13L,PDstandardNth1gt13,kmadd(J23L,PDstandardNth2gt13,kmul(J33L,PDstandardNth3gt13))); |
4338 | + |
4339 | + JacPDstandardNth3gt22 = |
4340 | + kmadd(J13L,PDstandardNth1gt22,kmadd(J23L,PDstandardNth2gt22,kmul(J33L,PDstandardNth3gt22))); |
4341 | + |
4342 | + JacPDstandardNth3gt23 = |
4343 | + kmadd(J13L,PDstandardNth1gt23,kmadd(J23L,PDstandardNth2gt23,kmul(J33L,PDstandardNth3gt23))); |
4344 | + |
4345 | + JacPDstandardNth3gt33 = |
4346 | + kmadd(J13L,PDstandardNth1gt33,kmadd(J23L,PDstandardNth2gt33,kmul(J33L,PDstandardNth3gt33))); |
4347 | + |
4348 | + JacPDstandardNth3phi = |
4349 | + kmadd(J13L,PDstandardNth1phi,kmadd(J23L,PDstandardNth2phi,kmul(J33L,PDstandardNth3phi))); |
4350 | + |
4351 | + JacPDstandardNth3trK = |
4352 | + kmadd(J13L,PDstandardNth1trK,kmadd(J23L,PDstandardNth2trK,kmul(J33L,PDstandardNth3trK))); |
4353 | + |
4354 | + JacPDstandardNth11alpha = |
4355 | + kmadd(dJ111L,PDstandardNth1alpha,kmadd(dJ211L,PDstandardNth2alpha,kmadd(dJ311L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,kmul(J11L,J11L),kmadd(PDstandardNth22alpha,kmul(J21L,J21L),kmadd(PDstandardNth33alpha,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha)),kmul(J21L,kmul(J31L,PDstandardNth23alpha))),ToReal(2)))))))); |
4356 | + |
4357 | + JacPDstandardNth11beta1 = |
4358 | + kmadd(dJ111L,PDstandardNth1beta1,kmadd(dJ211L,PDstandardNth2beta1,kmadd(dJ311L,PDstandardNth3beta1,kmadd(PDstandardNth11beta1,kmul(J11L,J11L),kmadd(PDstandardNth22beta1,kmul(J21L,J21L),kmadd(PDstandardNth33beta1,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1)),kmul(J21L,kmul(J31L,PDstandardNth23beta1))),ToReal(2)))))))); |
4359 | + |
4360 | + JacPDstandardNth11beta2 = |
4361 | + kmadd(dJ111L,PDstandardNth1beta2,kmadd(dJ211L,PDstandardNth2beta2,kmadd(dJ311L,PDstandardNth3beta2,kmadd(PDstandardNth11beta2,kmul(J11L,J11L),kmadd(PDstandardNth22beta2,kmul(J21L,J21L),kmadd(PDstandardNth33beta2,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2)),kmul(J21L,kmul(J31L,PDstandardNth23beta2))),ToReal(2)))))))); |
4362 | + |
4363 | + JacPDstandardNth11beta3 = |
4364 | + kmadd(dJ111L,PDstandardNth1beta3,kmadd(dJ211L,PDstandardNth2beta3,kmadd(dJ311L,PDstandardNth3beta3,kmadd(PDstandardNth11beta3,kmul(J11L,J11L),kmadd(PDstandardNth22beta3,kmul(J21L,J21L),kmadd(PDstandardNth33beta3,kmul(J31L,J31L),kmul(kmadd(J11L,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3)),kmul(J21L,kmul(J31L,PDstandardNth23beta3))),ToReal(2)))))))); |
4365 | + |
4366 | + JacPDstandardNth22alpha = |
4367 | + kmadd(dJ122L,PDstandardNth1alpha,kmadd(dJ222L,PDstandardNth2alpha,kmadd(dJ322L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,kmul(J12L,J12L),kmadd(PDstandardNth22alpha,kmul(J22L,J22L),kmadd(PDstandardNth33alpha,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmul(J22L,kmul(J32L,PDstandardNth23alpha))),ToReal(2)))))))); |
4368 | + |
4369 | + JacPDstandardNth22beta1 = |
4370 | + kmadd(dJ122L,PDstandardNth1beta1,kmadd(dJ222L,PDstandardNth2beta1,kmadd(dJ322L,PDstandardNth3beta1,kmadd(PDstandardNth11beta1,kmul(J12L,J12L),kmadd(PDstandardNth22beta1,kmul(J22L,J22L),kmadd(PDstandardNth33beta1,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1)),kmul(J22L,kmul(J32L,PDstandardNth23beta1))),ToReal(2)))))))); |
4371 | + |
4372 | + JacPDstandardNth22beta2 = |
4373 | + kmadd(dJ122L,PDstandardNth1beta2,kmadd(dJ222L,PDstandardNth2beta2,kmadd(dJ322L,PDstandardNth3beta2,kmadd(PDstandardNth11beta2,kmul(J12L,J12L),kmadd(PDstandardNth22beta2,kmul(J22L,J22L),kmadd(PDstandardNth33beta2,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2)),kmul(J22L,kmul(J32L,PDstandardNth23beta2))),ToReal(2)))))))); |
4374 | + |
4375 | + JacPDstandardNth22beta3 = |
4376 | + kmadd(dJ122L,PDstandardNth1beta3,kmadd(dJ222L,PDstandardNth2beta3,kmadd(dJ322L,PDstandardNth3beta3,kmadd(PDstandardNth11beta3,kmul(J12L,J12L),kmadd(PDstandardNth22beta3,kmul(J22L,J22L),kmadd(PDstandardNth33beta3,kmul(J32L,J32L),kmul(kmadd(J12L,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3)),kmul(J22L,kmul(J32L,PDstandardNth23beta3))),ToReal(2)))))))); |
4377 | + |
4378 | + JacPDstandardNth33alpha = |
4379 | + kmadd(dJ133L,PDstandardNth1alpha,kmadd(dJ233L,PDstandardNth2alpha,kmadd(dJ333L,PDstandardNth3alpha,kmadd(PDstandardNth11alpha,kmul(J13L,J13L),kmadd(PDstandardNth22alpha,kmul(J23L,J23L),kmadd(PDstandardNth33alpha,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmul(J23L,kmul(J33L,PDstandardNth23alpha))),ToReal(2)))))))); |
4380 | + |
4381 | + JacPDstandardNth33beta1 = |
4382 | + kmadd(dJ133L,PDstandardNth1beta1,kmadd(dJ233L,PDstandardNth2beta1,kmadd(dJ333L,PDstandardNth3beta1,kmadd(PDstandardNth11beta1,kmul(J13L,J13L),kmadd(PDstandardNth22beta1,kmul(J23L,J23L),kmadd(PDstandardNth33beta1,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmul(J23L,kmul(J33L,PDstandardNth23beta1))),ToReal(2)))))))); |
4383 | + |
4384 | + JacPDstandardNth33beta2 = |
4385 | + kmadd(dJ133L,PDstandardNth1beta2,kmadd(dJ233L,PDstandardNth2beta2,kmadd(dJ333L,PDstandardNth3beta2,kmadd(PDstandardNth11beta2,kmul(J13L,J13L),kmadd(PDstandardNth22beta2,kmul(J23L,J23L),kmadd(PDstandardNth33beta2,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmul(J23L,kmul(J33L,PDstandardNth23beta2))),ToReal(2)))))))); |
4386 | + |
4387 | + JacPDstandardNth33beta3 = |
4388 | + kmadd(dJ133L,PDstandardNth1beta3,kmadd(dJ233L,PDstandardNth2beta3,kmadd(dJ333L,PDstandardNth3beta3,kmadd(PDstandardNth11beta3,kmul(J13L,J13L),kmadd(PDstandardNth22beta3,kmul(J23L,J23L),kmadd(PDstandardNth33beta3,kmul(J33L,J33L),kmul(kmadd(J13L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmul(J23L,kmul(J33L,PDstandardNth23beta3))),ToReal(2)))))))); |
4389 | + |
4390 | + JacPDstandardNth12alpha = |
4391 | + kmadd(J12L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmadd(dJ112L,PDstandardNth1alpha,kmadd(J22L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ212L,PDstandardNth2alpha,kmadd(J32L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ312L,PDstandardNth3alpha))))))); |
4392 | + |
4393 | + JacPDstandardNth12beta1 = |
4394 | + kmadd(J12L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1)),kmadd(dJ112L,PDstandardNth1beta1,kmadd(J22L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ212L,PDstandardNth2beta1,kmadd(J32L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ312L,PDstandardNth3beta1))))))); |
4395 | + |
4396 | + JacPDstandardNth12beta2 = |
4397 | + kmadd(J12L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2)),kmadd(dJ112L,PDstandardNth1beta2,kmadd(J22L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ212L,PDstandardNth2beta2,kmadd(J32L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ312L,PDstandardNth3beta2))))))); |
4398 | + |
4399 | + JacPDstandardNth12beta3 = |
4400 | + kmadd(J12L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3)),kmadd(dJ112L,PDstandardNth1beta3,kmadd(J22L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ212L,PDstandardNth2beta3,kmadd(J32L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ312L,PDstandardNth3beta3))))))); |
4401 | + |
4402 | + JacPDstandardNth13alpha = |
4403 | + kmadd(J13L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ113L,PDstandardNth1alpha,kmadd(J23L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ213L,PDstandardNth2alpha,kmadd(J33L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ313L,PDstandardNth3alpha))))))); |
4404 | + |
4405 | + JacPDstandardNth13beta1 = |
4406 | + kmadd(J13L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ113L,PDstandardNth1beta1,kmadd(J23L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ213L,PDstandardNth2beta1,kmadd(J33L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ313L,PDstandardNth3beta1))))))); |
4407 | + |
4408 | + JacPDstandardNth13beta2 = |
4409 | + kmadd(J13L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ113L,PDstandardNth1beta2,kmadd(J23L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ213L,PDstandardNth2beta2,kmadd(J33L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ313L,PDstandardNth3beta2))))))); |
4410 | + |
4411 | + JacPDstandardNth13beta3 = |
4412 | + kmadd(J13L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ113L,PDstandardNth1beta3,kmadd(J23L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ213L,PDstandardNth2beta3,kmadd(J33L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ313L,PDstandardNth3beta3))))))); |
4413 | + |
4414 | + JacPDstandardNth21alpha = |
4415 | + kmadd(J12L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha)),kmadd(dJ112L,PDstandardNth1alpha,kmadd(J22L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ212L,PDstandardNth2alpha,kmadd(J32L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ312L,PDstandardNth3alpha))))))); |
4416 | + |
4417 | + JacPDstandardNth21beta1 = |
4418 | + kmadd(J12L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1)),kmadd(dJ112L,PDstandardNth1beta1,kmadd(J22L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ212L,PDstandardNth2beta1,kmadd(J32L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ312L,PDstandardNth3beta1))))))); |
4419 | + |
4420 | + JacPDstandardNth21beta2 = |
4421 | + kmadd(J12L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2)),kmadd(dJ112L,PDstandardNth1beta2,kmadd(J22L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ212L,PDstandardNth2beta2,kmadd(J32L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ312L,PDstandardNth3beta2))))))); |
4422 | + |
4423 | + JacPDstandardNth21beta3 = |
4424 | + kmadd(J12L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3)),kmadd(dJ112L,PDstandardNth1beta3,kmadd(J22L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ212L,PDstandardNth2beta3,kmadd(J32L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ312L,PDstandardNth3beta3))))))); |
4425 | + |
4426 | + JacPDstandardNth23alpha = |
4427 | + kmadd(J13L,kmadd(J12L,PDstandardNth11alpha,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha))),kmadd(J12L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ123L,PDstandardNth1alpha,kmadd(J23L,kmadd(J22L,PDstandardNth22alpha,kmul(J32L,PDstandardNth23alpha)),kmadd(dJ223L,PDstandardNth2alpha,kmadd(J33L,kmadd(J22L,PDstandardNth23alpha,kmul(J32L,PDstandardNth33alpha)),kmul(dJ323L,PDstandardNth3alpha))))))); |
4428 | + |
4429 | + JacPDstandardNth23beta1 = |
4430 | + kmadd(J13L,kmadd(J12L,PDstandardNth11beta1,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ123L,PDstandardNth1beta1,kmadd(J23L,kmadd(J22L,PDstandardNth22beta1,kmul(J32L,PDstandardNth23beta1)),kmadd(dJ223L,PDstandardNth2beta1,kmadd(J33L,kmadd(J22L,PDstandardNth23beta1,kmul(J32L,PDstandardNth33beta1)),kmul(dJ323L,PDstandardNth3beta1))))))); |
4431 | + |
4432 | + JacPDstandardNth23beta2 = |
4433 | + kmadd(J13L,kmadd(J12L,PDstandardNth11beta2,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ123L,PDstandardNth1beta2,kmadd(J23L,kmadd(J22L,PDstandardNth22beta2,kmul(J32L,PDstandardNth23beta2)),kmadd(dJ223L,PDstandardNth2beta2,kmadd(J33L,kmadd(J22L,PDstandardNth23beta2,kmul(J32L,PDstandardNth33beta2)),kmul(dJ323L,PDstandardNth3beta2))))))); |
4434 | + |
4435 | + JacPDstandardNth23beta3 = |
4436 | + kmadd(J13L,kmadd(J12L,PDstandardNth11beta3,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ123L,PDstandardNth1beta3,kmadd(J23L,kmadd(J22L,PDstandardNth22beta3,kmul(J32L,PDstandardNth23beta3)),kmadd(dJ223L,PDstandardNth2beta3,kmadd(J33L,kmadd(J22L,PDstandardNth23beta3,kmul(J32L,PDstandardNth33beta3)),kmul(dJ323L,PDstandardNth3beta3))))))); |
4437 | + |
4438 | + JacPDstandardNth31alpha = |
4439 | + kmadd(J13L,kmadd(J11L,PDstandardNth11alpha,kmadd(J21L,PDstandardNth12alpha,kmul(J31L,PDstandardNth13alpha))),kmadd(J11L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ113L,PDstandardNth1alpha,kmadd(J23L,kmadd(J21L,PDstandardNth22alpha,kmul(J31L,PDstandardNth23alpha)),kmadd(dJ213L,PDstandardNth2alpha,kmadd(J33L,kmadd(J21L,PDstandardNth23alpha,kmul(J31L,PDstandardNth33alpha)),kmul(dJ313L,PDstandardNth3alpha))))))); |
4440 | + |
4441 | + JacPDstandardNth31beta1 = |
4442 | + kmadd(J13L,kmadd(J11L,PDstandardNth11beta1,kmadd(J21L,PDstandardNth12beta1,kmul(J31L,PDstandardNth13beta1))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ113L,PDstandardNth1beta1,kmadd(J23L,kmadd(J21L,PDstandardNth22beta1,kmul(J31L,PDstandardNth23beta1)),kmadd(dJ213L,PDstandardNth2beta1,kmadd(J33L,kmadd(J21L,PDstandardNth23beta1,kmul(J31L,PDstandardNth33beta1)),kmul(dJ313L,PDstandardNth3beta1))))))); |
4443 | + |
4444 | + JacPDstandardNth31beta2 = |
4445 | + kmadd(J13L,kmadd(J11L,PDstandardNth11beta2,kmadd(J21L,PDstandardNth12beta2,kmul(J31L,PDstandardNth13beta2))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ113L,PDstandardNth1beta2,kmadd(J23L,kmadd(J21L,PDstandardNth22beta2,kmul(J31L,PDstandardNth23beta2)),kmadd(dJ213L,PDstandardNth2beta2,kmadd(J33L,kmadd(J21L,PDstandardNth23beta2,kmul(J31L,PDstandardNth33beta2)),kmul(dJ313L,PDstandardNth3beta2))))))); |
4446 | + |
4447 | + JacPDstandardNth31beta3 = |
4448 | + kmadd(J13L,kmadd(J11L,PDstandardNth11beta3,kmadd(J21L,PDstandardNth12beta3,kmul(J31L,PDstandardNth13beta3))),kmadd(J11L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ113L,PDstandardNth1beta3,kmadd(J23L,kmadd(J21L,PDstandardNth22beta3,kmul(J31L,PDstandardNth23beta3)),kmadd(dJ213L,PDstandardNth2beta3,kmadd(J33L,kmadd(J21L,PDstandardNth23beta3,kmul(J31L,PDstandardNth33beta3)),kmul(dJ313L,PDstandardNth3beta3))))))); |
4449 | + |
4450 | + JacPDstandardNth32alpha = |
4451 | + kmadd(J13L,kmadd(J12L,PDstandardNth11alpha,kmadd(J22L,PDstandardNth12alpha,kmul(J32L,PDstandardNth13alpha))),kmadd(J12L,kmadd(J23L,PDstandardNth12alpha,kmul(J33L,PDstandardNth13alpha)),kmadd(dJ123L,PDstandardNth1alpha,kmadd(J23L,kmadd(J22L,PDstandardNth22alpha,kmul(J32L,PDstandardNth23alpha)),kmadd(dJ223L,PDstandardNth2alpha,kmadd(J33L,kmadd(J22L,PDstandardNth23alpha,kmul(J32L,PDstandardNth33alpha)),kmul(dJ323L,PDstandardNth3alpha))))))); |
4452 | + |
4453 | + JacPDstandardNth32beta1 = |
4454 | + kmadd(J13L,kmadd(J12L,PDstandardNth11beta1,kmadd(J22L,PDstandardNth12beta1,kmul(J32L,PDstandardNth13beta1))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta1,kmul(J33L,PDstandardNth13beta1)),kmadd(dJ123L,PDstandardNth1beta1,kmadd(J23L,kmadd(J22L,PDstandardNth22beta1,kmul(J32L,PDstandardNth23beta1)),kmadd(dJ223L,PDstandardNth2beta1,kmadd(J33L,kmadd(J22L,PDstandardNth23beta1,kmul(J32L,PDstandardNth33beta1)),kmul(dJ323L,PDstandardNth3beta1))))))); |
4455 | + |
4456 | + JacPDstandardNth32beta2 = |
4457 | + kmadd(J13L,kmadd(J12L,PDstandardNth11beta2,kmadd(J22L,PDstandardNth12beta2,kmul(J32L,PDstandardNth13beta2))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta2,kmul(J33L,PDstandardNth13beta2)),kmadd(dJ123L,PDstandardNth1beta2,kmadd(J23L,kmadd(J22L,PDstandardNth22beta2,kmul(J32L,PDstandardNth23beta2)),kmadd(dJ223L,PDstandardNth2beta2,kmadd(J33L,kmadd(J22L,PDstandardNth23beta2,kmul(J32L,PDstandardNth33beta2)),kmul(dJ323L,PDstandardNth3beta2))))))); |
4458 | + |
4459 | + JacPDstandardNth32beta3 = |
4460 | + kmadd(J13L,kmadd(J12L,PDstandardNth11beta3,kmadd(J22L,PDstandardNth12beta3,kmul(J32L,PDstandardNth13beta3))),kmadd(J12L,kmadd(J23L,PDstandardNth12beta3,kmul(J33L,PDstandardNth13beta3)),kmadd(dJ123L,PDstandardNth1beta3,kmadd(J23L,kmadd(J22L,PDstandardNth22beta3,kmul(J32L,PDstandardNth23beta3)),kmadd(dJ223L,PDstandardNth2beta3,kmadd(J33L,kmadd(J22L,PDstandardNth23beta3,kmul(J32L,PDstandardNth33beta3)),kmul(dJ323L,PDstandardNth3beta3))))))); |
4461 | + } |
4462 | + else |
4463 | + { |
4464 | + JacPDstandardNth1alpha = PDstandardNth1alpha; |
4465 | + |
4466 | + JacPDstandardNth1beta1 = PDstandardNth1beta1; |
4467 | + |
4468 | + JacPDstandardNth1beta2 = PDstandardNth1beta2; |
4469 | + |
4470 | + JacPDstandardNth1beta3 = PDstandardNth1beta3; |
4471 | + |
4472 | + JacPDstandardNth1gt11 = PDstandardNth1gt11; |
4473 | + |
4474 | + JacPDstandardNth1gt12 = PDstandardNth1gt12; |
4475 | + |
4476 | + JacPDstandardNth1gt13 = PDstandardNth1gt13; |
4477 | + |
4478 | + JacPDstandardNth1gt22 = PDstandardNth1gt22; |
4479 | + |
4480 | + JacPDstandardNth1gt23 = PDstandardNth1gt23; |
4481 | + |
4482 | + JacPDstandardNth1gt33 = PDstandardNth1gt33; |
4483 | + |
4484 | + JacPDstandardNth1phi = PDstandardNth1phi; |
4485 | + |
4486 | + JacPDstandardNth1trK = PDstandardNth1trK; |
4487 | + |
4488 | + JacPDstandardNth2alpha = PDstandardNth2alpha; |
4489 | + |
4490 | + JacPDstandardNth2beta1 = PDstandardNth2beta1; |
4491 | + |
4492 | + JacPDstandardNth2beta2 = PDstandardNth2beta2; |
4493 | + |
4494 | + JacPDstandardNth2beta3 = PDstandardNth2beta3; |
4495 | + |
4496 | + JacPDstandardNth2gt11 = PDstandardNth2gt11; |
4497 | + |
4498 | + JacPDstandardNth2gt12 = PDstandardNth2gt12; |
4499 | + |
4500 | + JacPDstandardNth2gt13 = PDstandardNth2gt13; |
4501 | + |
4502 | + JacPDstandardNth2gt22 = PDstandardNth2gt22; |
4503 | + |
4504 | + JacPDstandardNth2gt23 = PDstandardNth2gt23; |
4505 | + |
4506 | + JacPDstandardNth2gt33 = PDstandardNth2gt33; |
4507 | + |
4508 | + JacPDstandardNth2phi = PDstandardNth2phi; |
4509 | + |
4510 | + JacPDstandardNth2trK = PDstandardNth2trK; |
4511 | + |
4512 | + JacPDstandardNth3alpha = PDstandardNth3alpha; |
4513 | + |
4514 | + JacPDstandardNth3beta1 = PDstandardNth3beta1; |
4515 | + |
4516 | + JacPDstandardNth3beta2 = PDstandardNth3beta2; |
4517 | + |
4518 | + JacPDstandardNth3beta3 = PDstandardNth3beta3; |
4519 | + |
4520 | + JacPDstandardNth3gt11 = PDstandardNth3gt11; |
4521 | + |
4522 | + JacPDstandardNth3gt12 = PDstandardNth3gt12; |
4523 | + |
4524 | + JacPDstandardNth3gt13 = PDstandardNth3gt13; |
4525 | + |
4526 | + JacPDstandardNth3gt22 = PDstandardNth3gt22; |
4527 | + |
4528 | + JacPDstandardNth3gt23 = PDstandardNth3gt23; |
4529 | + |
4530 | + JacPDstandardNth3gt33 = PDstandardNth3gt33; |
4531 | + |
4532 | + JacPDstandardNth3phi = PDstandardNth3phi; |
4533 | + |
4534 | + JacPDstandardNth3trK = PDstandardNth3trK; |
4535 | + |
4536 | + JacPDstandardNth11alpha = PDstandardNth11alpha; |
4537 | + |
4538 | + JacPDstandardNth11beta1 = PDstandardNth11beta1; |
4539 | + |
4540 | + JacPDstandardNth11beta2 = PDstandardNth11beta2; |
4541 | + |
4542 | + JacPDstandardNth11beta3 = PDstandardNth11beta3; |
4543 | + |
4544 | + JacPDstandardNth22alpha = PDstandardNth22alpha; |
4545 | + |
4546 | + JacPDstandardNth22beta1 = PDstandardNth22beta1; |
4547 | + |
4548 | + JacPDstandardNth22beta2 = PDstandardNth22beta2; |
4549 | + |
4550 | + JacPDstandardNth22beta3 = PDstandardNth22beta3; |
4551 | + |
4552 | + JacPDstandardNth33alpha = PDstandardNth33alpha; |
4553 | + |
4554 | + JacPDstandardNth33beta1 = PDstandardNth33beta1; |
4555 | + |
4556 | + JacPDstandardNth33beta2 = PDstandardNth33beta2; |
4557 | + |
4558 | + JacPDstandardNth33beta3 = PDstandardNth33beta3; |
4559 | + |
4560 | + JacPDstandardNth12alpha = PDstandardNth12alpha; |
4561 | + |
4562 | + JacPDstandardNth12beta1 = PDstandardNth12beta1; |
4563 | + |
4564 | + JacPDstandardNth12beta2 = PDstandardNth12beta2; |
4565 | + |
4566 | + JacPDstandardNth12beta3 = PDstandardNth12beta3; |
4567 | + |
4568 | + JacPDstandardNth13alpha = PDstandardNth13alpha; |
4569 | + |
4570 | + JacPDstandardNth13beta1 = PDstandardNth13beta1; |
4571 | + |
4572 | + JacPDstandardNth13beta2 = PDstandardNth13beta2; |
4573 | + |
4574 | + JacPDstandardNth13beta3 = PDstandardNth13beta3; |
4575 | + |
4576 | + JacPDstandardNth21alpha = PDstandardNth12alpha; |
4577 | + |
4578 | + JacPDstandardNth21beta1 = PDstandardNth12beta1; |
4579 | + |
4580 | + JacPDstandardNth21beta2 = PDstandardNth12beta2; |
4581 | + |
4582 | + JacPDstandardNth21beta3 = PDstandardNth12beta3; |
4583 | + |
4584 | + JacPDstandardNth23alpha = PDstandardNth23alpha; |
4585 | + |
4586 | + JacPDstandardNth23beta1 = PDstandardNth23beta1; |
4587 | + |
4588 | + JacPDstandardNth23beta2 = PDstandardNth23beta2; |
4589 | + |
4590 | + JacPDstandardNth23beta3 = PDstandardNth23beta3; |
4591 | + |
4592 | + JacPDstandardNth31alpha = PDstandardNth13alpha; |
4593 | + |
4594 | + JacPDstandardNth31beta1 = PDstandardNth13beta1; |
4595 | + |
4596 | + JacPDstandardNth31beta2 = PDstandardNth13beta2; |
4597 | + |
4598 | + JacPDstandardNth31beta3 = PDstandardNth13beta3; |
4599 | + |
4600 | + JacPDstandardNth32alpha = PDstandardNth23alpha; |
4601 | + |
4602 | + JacPDstandardNth32beta1 = PDstandardNth23beta1; |
4603 | + |
4604 | + JacPDstandardNth32beta2 = PDstandardNth23beta2; |
4605 | + |
4606 | + JacPDstandardNth32beta3 = PDstandardNth23beta3; |
4607 | + } |
4608 | + |
4609 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED detgt = ToReal(1); |
4610 | + |
4611 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gtu11 = |
4612 | + kdiv(kmsub(gt22L,gt33L,kmul(gt23L,gt23L)),detgt); |
4613 | + |
4614 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gtu12 = |
4615 | + kdiv(kmsub(gt13L,gt23L,kmul(gt12L,gt33L)),detgt); |
4616 | + |
4617 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gtu13 = |
4618 | + kdiv(kmsub(gt12L,gt23L,kmul(gt13L,gt22L)),detgt); |
4619 | + |
4620 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gtu22 = |
4621 | + kdiv(kmsub(gt11L,gt33L,kmul(gt13L,gt13L)),detgt); |
4622 | + |
4623 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gtu23 = |
4624 | + kdiv(kmsub(gt12L,gt13L,kmul(gt11L,gt23L)),detgt); |
4625 | + |
4626 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gtu33 = |
4627 | + kdiv(kmsub(gt11L,gt22L,kmul(gt12L,gt12L)),detgt); |
4628 | + |
4629 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl111 = |
4630 | + kmul(JacPDstandardNth1gt11,ToReal(0.5)); |
4631 | + |
4632 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl112 = |
4633 | + kmul(JacPDstandardNth2gt11,ToReal(0.5)); |
4634 | + |
4635 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl113 = |
4636 | + kmul(JacPDstandardNth3gt11,ToReal(0.5)); |
4637 | + |
4638 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl122 = |
4639 | + kmadd(JacPDstandardNth1gt22,ToReal(-0.5),JacPDstandardNth2gt12); |
4640 | + |
4641 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl123 = |
4642 | + kmul(kadd(JacPDstandardNth2gt13,ksub(JacPDstandardNth3gt12,JacPDstandardNth1gt23)),ToReal(0.5)); |
4643 | + |
4644 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl133 = |
4645 | + kmadd(JacPDstandardNth1gt33,ToReal(-0.5),JacPDstandardNth3gt13); |
4646 | + |
4647 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl211 = |
4648 | + kmadd(JacPDstandardNth2gt11,ToReal(-0.5),JacPDstandardNth1gt12); |
4649 | + |
4650 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl212 = |
4651 | + kmul(JacPDstandardNth1gt22,ToReal(0.5)); |
4652 | + |
4653 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl213 = |
4654 | + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)),ToReal(0.5)); |
4655 | + |
4656 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl222 = |
4657 | + kmul(JacPDstandardNth2gt22,ToReal(0.5)); |
4658 | + |
4659 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl223 = |
4660 | + kmul(JacPDstandardNth3gt22,ToReal(0.5)); |
4661 | + |
4662 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl233 = |
4663 | + kmadd(JacPDstandardNth2gt33,ToReal(-0.5),JacPDstandardNth3gt23); |
4664 | + |
4665 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl311 = |
4666 | + kmadd(JacPDstandardNth3gt11,ToReal(-0.5),JacPDstandardNth1gt13); |
4667 | + |
4668 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl312 = |
4669 | + kmul(kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)),ToReal(0.5)); |
4670 | + |
4671 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl313 = |
4672 | + kmul(JacPDstandardNth1gt33,ToReal(0.5)); |
4673 | + |
4674 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl322 = |
4675 | + kmadd(JacPDstandardNth3gt22,ToReal(-0.5),JacPDstandardNth2gt23); |
4676 | + |
4677 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl323 = |
4678 | + kmul(JacPDstandardNth2gt33,ToReal(0.5)); |
4679 | + |
4680 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gtl333 = |
4681 | + kmul(JacPDstandardNth3gt33,ToReal(0.5)); |
4682 | + |
4683 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt111 = |
4684 | + kmadd(Gtl111,gtu11,kmadd(Gtl211,gtu12,kmul(Gtl311,gtu13))); |
4685 | + |
4686 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt211 = |
4687 | + kmadd(Gtl111,gtu12,kmadd(Gtl211,gtu22,kmul(Gtl311,gtu23))); |
4688 | + |
4689 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt311 = |
4690 | + kmadd(Gtl111,gtu13,kmadd(Gtl211,gtu23,kmul(Gtl311,gtu33))); |
4691 | + |
4692 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt112 = |
4693 | + kmadd(Gtl112,gtu11,kmadd(Gtl212,gtu12,kmul(Gtl312,gtu13))); |
4694 | + |
4695 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt212 = |
4696 | + kmadd(Gtl112,gtu12,kmadd(Gtl212,gtu22,kmul(Gtl312,gtu23))); |
4697 | + |
4698 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt312 = |
4699 | + kmadd(Gtl112,gtu13,kmadd(Gtl212,gtu23,kmul(Gtl312,gtu33))); |
4700 | + |
4701 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt113 = |
4702 | + kmadd(Gtl113,gtu11,kmadd(Gtl213,gtu12,kmul(Gtl313,gtu13))); |
4703 | + |
4704 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt213 = |
4705 | + kmadd(Gtl113,gtu12,kmadd(Gtl213,gtu22,kmul(Gtl313,gtu23))); |
4706 | + |
4707 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt313 = |
4708 | + kmadd(Gtl113,gtu13,kmadd(Gtl213,gtu23,kmul(Gtl313,gtu33))); |
4709 | + |
4710 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt122 = |
4711 | + kmadd(Gtl122,gtu11,kmadd(Gtl222,gtu12,kmul(Gtl322,gtu13))); |
4712 | + |
4713 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt222 = |
4714 | + kmadd(Gtl122,gtu12,kmadd(Gtl222,gtu22,kmul(Gtl322,gtu23))); |
4715 | + |
4716 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt322 = |
4717 | + kmadd(Gtl122,gtu13,kmadd(Gtl222,gtu23,kmul(Gtl322,gtu33))); |
4718 | + |
4719 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt123 = |
4720 | + kmadd(Gtl123,gtu11,kmadd(Gtl223,gtu12,kmul(Gtl323,gtu13))); |
4721 | + |
4722 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt223 = |
4723 | + kmadd(Gtl123,gtu12,kmadd(Gtl223,gtu22,kmul(Gtl323,gtu23))); |
4724 | + |
4725 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt323 = |
4726 | + kmadd(Gtl123,gtu13,kmadd(Gtl223,gtu23,kmul(Gtl323,gtu33))); |
4727 | + |
4728 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt133 = |
4729 | + kmadd(Gtl133,gtu11,kmadd(Gtl233,gtu12,kmul(Gtl333,gtu13))); |
4730 | + |
4731 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt233 = |
4732 | + kmadd(Gtl133,gtu12,kmadd(Gtl233,gtu22,kmul(Gtl333,gtu23))); |
4733 | + |
4734 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Gt333 = |
4735 | + kmadd(Gtl133,gtu13,kmadd(Gtl233,gtu23,kmul(Gtl333,gtu33))); |
4736 | + |
4737 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Xtn1 = |
4738 | + kmadd(Gt111,gtu11,kmadd(Gt122,gtu22,kmadd(Gt133,gtu33,kmul(kmadd(Gt112,gtu12,kmadd(Gt113,gtu13,kmul(Gt123,gtu23))),ToReal(2))))); |
4739 | + |
4740 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Xtn2 = |
4741 | + kmadd(Gt211,gtu11,kmadd(Gt222,gtu22,kmadd(Gt233,gtu33,kmul(kmadd(Gt212,gtu12,kmadd(Gt213,gtu13,kmul(Gt223,gtu23))),ToReal(2))))); |
4742 | + |
4743 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Xtn3 = |
4744 | + kmadd(Gt311,gtu11,kmadd(Gt322,gtu22,kmadd(Gt333,gtu33,kmul(kmadd(Gt312,gtu12,kmadd(Gt313,gtu13,kmul(Gt323,gtu23))),ToReal(2))))); |
4745 | + |
4746 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED e4phi = IfThen(conformalMethod == |
4747 | + 1,kdiv(ToReal(1),kmul(phiL,phiL)),kexp(kmul(phiL,ToReal(4)))); |
4748 | + |
4749 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED em4phi = kdiv(ToReal(1),e4phi); |
4750 | + |
4751 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED fac1 = IfThen(conformalMethod == |
4752 | + 1,kdiv(ToReal(-0.5),phiL),ToReal(1)); |
4753 | + |
4754 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED cdphi1 = |
4755 | + kmul(fac1,JacPDstandardNth1phi); |
4756 | + |
4757 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED cdphi2 = |
4758 | + kmul(fac1,JacPDstandardNth2phi); |
4759 | + |
4760 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED cdphi3 = |
4761 | + kmul(fac1,JacPDstandardNth3phi); |
4762 | + |
4763 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm11 = |
4764 | + kmadd(At11L,gtu11,kmadd(At12L,gtu12,kmul(At13L,gtu13))); |
4765 | + |
4766 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm21 = |
4767 | + kmadd(At11L,gtu12,kmadd(At12L,gtu22,kmul(At13L,gtu23))); |
4768 | + |
4769 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm31 = |
4770 | + kmadd(At11L,gtu13,kmadd(At12L,gtu23,kmul(At13L,gtu33))); |
4771 | + |
4772 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm12 = |
4773 | + kmadd(At12L,gtu11,kmadd(At22L,gtu12,kmul(At23L,gtu13))); |
4774 | + |
4775 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm22 = |
4776 | + kmadd(At12L,gtu12,kmadd(At22L,gtu22,kmul(At23L,gtu23))); |
4777 | + |
4778 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm32 = |
4779 | + kmadd(At12L,gtu13,kmadd(At22L,gtu23,kmul(At23L,gtu33))); |
4780 | + |
4781 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm13 = |
4782 | + kmadd(At13L,gtu11,kmadd(At23L,gtu12,kmul(At33L,gtu13))); |
4783 | + |
4784 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm23 = |
4785 | + kmadd(At13L,gtu12,kmadd(At23L,gtu22,kmul(At33L,gtu23))); |
4786 | + |
4787 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atm33 = |
4788 | + kmadd(At13L,gtu13,kmadd(At23L,gtu23,kmul(At33L,gtu33))); |
4789 | + |
4790 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atu11 = |
4791 | + kmadd(Atm11,gtu11,kmadd(Atm12,gtu12,kmul(Atm13,gtu13))); |
4792 | + |
4793 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atu12 = |
4794 | + kmadd(Atm11,gtu12,kmadd(Atm12,gtu22,kmul(Atm13,gtu23))); |
4795 | + |
4796 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atu13 = |
4797 | + kmadd(Atm11,gtu13,kmadd(Atm12,gtu23,kmul(Atm13,gtu33))); |
4798 | + |
4799 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atu22 = |
4800 | + kmadd(Atm21,gtu12,kmadd(Atm22,gtu22,kmul(Atm23,gtu23))); |
4801 | + |
4802 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atu23 = |
4803 | + kmadd(Atm21,gtu13,kmadd(Atm22,gtu23,kmul(Atm23,gtu33))); |
4804 | + |
4805 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Atu33 = |
4806 | + kmadd(Atm31,gtu13,kmadd(Atm32,gtu23,kmul(Atm33,gtu33))); |
4807 | + |
4808 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED rho = |
4809 | + kdiv(kadd(eTttL,kmadd(eTxxL,kmul(beta1L,beta1L),kmadd(eTyyL,kmul(beta2L,beta2L),kmadd(eTzzL,kmul(beta3L,beta3L),kmadd(kmadd(beta2L,eTtyL,kmul(beta3L,eTtzL)),ToReal(-2),kmul(kmadd(beta2L,kmul(beta3L,eTyzL),kmul(beta1L,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL)))),ToReal(2))))))),kmul(alphaL,alphaL)); |
4810 | + |
4811 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED S1 = |
4812 | + kdiv(kmadd(beta1L,eTxxL,kmadd(beta2L,eTxyL,kmsub(beta3L,eTxzL,eTtxL))),alphaL); |
4813 | + |
4814 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED S2 = |
4815 | + kdiv(kmadd(beta1L,eTxyL,kmadd(beta2L,eTyyL,kmsub(beta3L,eTyzL,eTtyL))),alphaL); |
4816 | + |
4817 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED S3 = |
4818 | + kdiv(kmadd(beta1L,eTxzL,kmadd(beta2L,eTyzL,kmsub(beta3L,eTzzL,eTtzL))),alphaL); |
4819 | + |
4820 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED trS = |
4821 | + kmul(em4phi,kmadd(eTxxL,gtu11,kmadd(eTyyL,gtu22,kmadd(eTzzL,gtu33,kmul(kmadd(eTxyL,gtu12,kmadd(eTxzL,gtu13,kmul(eTyzL,gtu23))),ToReal(2)))))); |
4822 | + |
4823 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED phirhsL = |
4824 | + kneg(kmul(IfThen(conformalMethod == |
4825 | + 1,kmul(phiL,ToReal(0.333333333333333333333333333333)),ToReal(-0.166666666666666666666666666667)),kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,knmsub(alphaL,trKL,JacPDstandardNth3beta3))))); |
4826 | + |
4827 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gt11rhsL = |
4828 | + kmadd(alphaL,kmul(At11L,ToReal(-2)),kmadd(gt11L,kmul(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(-0.666666666666666666666666666667)),kmul(kmadd(gt11L,JacPDstandardNth1beta1,kmadd(gt12L,JacPDstandardNth1beta2,kmul(gt13L,JacPDstandardNth1beta3))),ToReal(2)))); |
4829 | + |
4830 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gt12rhsL = |
4831 | + kmadd(gt22L,JacPDstandardNth1beta2,kmadd(gt23L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth2beta1,kmadd(gt13L,JacPDstandardNth2beta3,kmadd(alphaL,kmul(At12L,ToReal(-2)),kmul(gt12L,kadd(JacPDstandardNth1beta1,kmadd(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(-0.666666666666666666666666666667),JacPDstandardNth2beta2)))))))); |
4832 | + |
4833 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gt13rhsL = |
4834 | + kmadd(gt23L,JacPDstandardNth1beta2,kmadd(gt33L,JacPDstandardNth1beta3,kmadd(gt11L,JacPDstandardNth3beta1,kmadd(gt12L,JacPDstandardNth3beta2,kmadd(alphaL,kmul(At13L,ToReal(-2)),kmul(gt13L,kadd(JacPDstandardNth1beta1,kmadd(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(-0.666666666666666666666666666667),JacPDstandardNth3beta3)))))))); |
4835 | + |
4836 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gt22rhsL = |
4837 | + kmadd(alphaL,kmul(At22L,ToReal(-2)),kmadd(gt22L,kmul(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(-0.666666666666666666666666666667)),kmul(kmadd(gt12L,JacPDstandardNth2beta1,kmadd(gt22L,JacPDstandardNth2beta2,kmul(gt23L,JacPDstandardNth2beta3))),ToReal(2)))); |
4838 | + |
4839 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gt23rhsL = |
4840 | + kmadd(gt13L,JacPDstandardNth2beta1,kmadd(gt33L,JacPDstandardNth2beta3,kmadd(gt12L,JacPDstandardNth3beta1,kmadd(gt22L,JacPDstandardNth3beta2,kmadd(alphaL,kmul(At23L,ToReal(-2)),kmul(gt23L,kadd(JacPDstandardNth2beta2,kmadd(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(-0.666666666666666666666666666667),JacPDstandardNth3beta3)))))))); |
4841 | + |
4842 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED gt33rhsL = |
4843 | + kmadd(alphaL,kmul(At33L,ToReal(-2)),kmadd(gt33L,kmul(kadd(JacPDstandardNth1beta1,kadd(JacPDstandardNth2beta2,JacPDstandardNth3beta3)),ToReal(-0.666666666666666666666666666667)),kmul(kmadd(gt13L,JacPDstandardNth3beta1,kmadd(gt23L,JacPDstandardNth3beta2,kmul(gt33L,JacPDstandardNth3beta3))),ToReal(2)))); |
4844 | + |
4845 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED dotXt1 = |
4846 | + kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu11,JacPDstandardNth1alpha,kmadd(Atu12,JacPDstandardNth2alpha,kmul(Atu13,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth2beta1,Xtn2,kmul(JacPDstandardNth3beta1,Xtn3)),ToReal(-3),kmadd(Xtn1,kmsub(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth1beta1),kmadd(kmadd(gtu12,JacPDstandardNth12beta1,kmadd(gtu13,JacPDstandardNth13beta1,kmadd(gtu22,JacPDstandardNth22beta1,kmadd(gtu23,kadd(JacPDstandardNth23beta1,JacPDstandardNth32beta1),kmul(gtu33,JacPDstandardNth33beta1))))),ToReal(3),kmadd(gtu11,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth11beta1,ToReal(4),JacPDstandardNth13beta3)),kmadd(gtu12,kadd(JacPDstandardNth22beta2,kmadd(JacPDstandardNth21beta1,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu13,kadd(JacPDstandardNth32beta2,kmadd(JacPDstandardNth31beta1,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth2beta2,Xtn1,kmul(alphaL,kmadd(kmadd(gtu11,JacPDstandardNth1trK,kmadd(gtu12,JacPDstandardNth2trK,kmul(gtu13,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu23,Gt123,kmul(Atu12,kmadd(cdphi2,ToReal(3),Gt112))),ToReal(6),kmadd(ToReal(3),kmadd(Atu22,Gt122,kmadd(Atu33,Gt133,kmul(Atu11,kmadd(cdphi1,ToReal(6),Gt111)))),kmadd(Atu13,kmadd(Gt113,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu11,S1,kmadd(gtu12,S2,kmul(gtu13,S3))),ToReal(-24*Pi))))))))))))))))); |
4847 | + |
4848 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED dotXt2 = |
4849 | + kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu12,JacPDstandardNth1alpha,kmadd(Atu22,JacPDstandardNth2alpha,kmul(Atu23,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta2,Xtn1,kmul(JacPDstandardNth3beta2,Xtn3)),ToReal(-3),kmadd(Xtn2,kmsub(JacPDstandardNth3beta3,ToReal(2),JacPDstandardNth2beta2),kmadd(kmadd(gtu11,JacPDstandardNth11beta2,kmadd(gtu23,JacPDstandardNth23beta2,kmadd(gtu13,kadd(JacPDstandardNth13beta2,JacPDstandardNth31beta2),kmul(gtu33,JacPDstandardNth33beta2)))),ToReal(3),kmadd(gtu12,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth13beta3,kmadd(JacPDstandardNth21beta2,ToReal(3),kmul(JacPDstandardNth12beta2,ToReal(4))))),kmadd(gtu22,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth22beta2,ToReal(4),JacPDstandardNth23beta3)),kmadd(gtu23,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth32beta2,ToReal(4),JacPDstandardNth33beta3)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn2,kmul(alphaL,kmadd(kmadd(gtu12,JacPDstandardNth1trK,kmadd(gtu22,JacPDstandardNth2trK,kmul(gtu23,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu13,Gt213,kmul(Atu12,kmadd(cdphi1,ToReal(3),Gt212))),ToReal(6),kmadd(ToReal(3),kmadd(Atu11,Gt211,kmadd(Atu33,Gt233,kmul(Atu22,kmadd(cdphi2,ToReal(6),Gt222)))),kmadd(Atu23,kmadd(Gt223,ToReal(6),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu12,S1,kmadd(gtu22,S2,kmul(gtu23,S3))),ToReal(-24*Pi))))))))))))))))); |
4850 | + |
4851 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED dotXt3 = |
4852 | + kmul(ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atu13,JacPDstandardNth1alpha,kmadd(Atu23,JacPDstandardNth2alpha,kmul(Atu33,JacPDstandardNth3alpha))),ToReal(-6),kmadd(kmadd(JacPDstandardNth1beta3,Xtn1,kmul(JacPDstandardNth2beta3,Xtn2)),ToReal(-3),kmadd(Xtn3,kmsub(JacPDstandardNth2beta2,ToReal(2),JacPDstandardNth3beta3),kmadd(kmadd(gtu11,JacPDstandardNth11beta3,kmadd(gtu12,kadd(JacPDstandardNth12beta3,JacPDstandardNth21beta3),kmadd(gtu22,JacPDstandardNth22beta3,kmul(gtu23,JacPDstandardNth32beta3)))),ToReal(3),kmadd(gtu13,kadd(JacPDstandardNth11beta1,kadd(JacPDstandardNth12beta2,kmadd(JacPDstandardNth31beta3,ToReal(3),kmul(JacPDstandardNth13beta3,ToReal(4))))),kmadd(gtu23,kadd(JacPDstandardNth21beta1,kmadd(JacPDstandardNth23beta3,ToReal(4),JacPDstandardNth22beta2)),kmadd(gtu33,kadd(JacPDstandardNth31beta1,kmadd(JacPDstandardNth33beta3,ToReal(4),JacPDstandardNth32beta2)),kmul(ToReal(2),kmadd(JacPDstandardNth1beta1,Xtn3,kmul(alphaL,kmadd(kmadd(gtu13,JacPDstandardNth1trK,kmadd(gtu23,JacPDstandardNth2trK,kmul(gtu33,JacPDstandardNth3trK))),ToReal(-2),kmadd(kmadd(Atu11,Gt311,kmul(Atu22,Gt322)),ToReal(3),kmadd(kmadd(Atu12,Gt312,kmadd(Atu13,kmadd(cdphi1,ToReal(3),Gt313),kmul(Atu23,kmadd(cdphi2,ToReal(3),Gt323)))),ToReal(6),kmadd(Atu33,kmadd(Gt333,ToReal(3),kmul(cdphi3,ToReal(18))),kmul(kmadd(gtu13,S1,kmadd(gtu23,S2,kmul(gtu33,S3))),ToReal(-24*Pi))))))))))))))))); |
4853 | + |
4854 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Xt1rhsL = dotXt1; |
4855 | + |
4856 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Xt2rhsL = dotXt2; |
4857 | + |
4858 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED Xt3rhsL = dotXt3; |
4859 | + |
4860 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED dottrK = |
4861 | + kmsub(alphaL,kmadd(Atm11,Atm11,kmadd(Atm22,Atm22,kmadd(Atm33,Atm33,kmadd(kmul(trKL,trKL),ToReal(0.333333333333333333333333333333),kmadd(kmadd(Atm12,Atm21,kmadd(Atm13,Atm31,kmul(Atm23,Atm32))),ToReal(2),kmul(kadd(rho,trS),ToReal(4*Pi))))))),kmul(em4phi,knmsub(JacPDstandardNth1alpha,Xtn1,knmsub(JacPDstandardNth2alpha,Xtn2,knmsub(JacPDstandardNth3alpha,Xtn3,kmadd(gtu11,kmadd(cdphi1,kmul(JacPDstandardNth1alpha,ToReal(2)),JacPDstandardNth11alpha),kmadd(gtu12,kadd(JacPDstandardNth12alpha,kadd(JacPDstandardNth21alpha,kmadd(cdphi2,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth2alpha,ToReal(2)))))),kmadd(gtu22,kmadd(cdphi2,kmul(JacPDstandardNth2alpha,ToReal(2)),JacPDstandardNth22alpha),kmadd(gtu13,kadd(JacPDstandardNth13alpha,kadd(JacPDstandardNth31alpha,kmadd(cdphi3,kmul(JacPDstandardNth1alpha,ToReal(2)),kmul(cdphi1,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmadd(gtu23,kadd(JacPDstandardNth23alpha,kadd(JacPDstandardNth32alpha,kmadd(cdphi3,kmul(JacPDstandardNth2alpha,ToReal(2)),kmul(cdphi2,kmul(JacPDstandardNth3alpha,ToReal(2)))))),kmul(gtu33,kmadd(cdphi3,kmul(JacPDstandardNth3alpha,ToReal(2)),JacPDstandardNth33alpha)))))))))))); |
4862 | + |
4863 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED trKrhsL = dottrK; |
4864 | + |
4865 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED alpharhsL = |
4866 | + kneg(kmul(kpow(alphaL,harmonicN),kmul(ToReal(harmonicF),kmadd(AL,ToReal(LapseACoeff),kmul(kmadd(kadd(alphaL,ToReal(-1)),ToReal(AlphaDriver),trKL),ToReal(1 |
4867 | + - LapseACoeff)))))); |
4868 | + |
4869 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED ArhsL = |
4870 | + kmul(knmsub(AL,ToReal(AlphaDriver),dottrK),ToReal(LapseACoeff)); |
4871 | + |
4872 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED eta = |
4873 | + kdiv(ToReal(SpatialBetaDriverRadius),kfmax(rL,ToReal(SpatialBetaDriverRadius))); |
4874 | + |
4875 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED theta = |
4876 | + kfmin(ToReal(1),kexp(knmsub(rL,ToReal(ScalarINV(SpatialShiftGammaCoeffRadius)),ToReal(1)))); |
4877 | + |
4878 | + CCTK_REAL_VEC beta1rhsL CCTK_ATTRIBUTE_UNUSED ; |
4879 | + CCTK_REAL_VEC beta2rhsL CCTK_ATTRIBUTE_UNUSED ; |
4880 | + CCTK_REAL_VEC beta3rhsL CCTK_ATTRIBUTE_UNUSED ; |
4881 | + |
4882 | + if (harmonicShift) |
4883 | + { |
4884 | + beta1rhsL = |
4885 | + kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu11,JacPDstandardNth1alpha,kmadd(gtu12,JacPDstandardNth2alpha,kmul(gtu13,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmadd(JacPDstandardNth1gt11,kmul(gtu11,gtu11),kmul(JacPDstandardNth1gt22,kmul(kmul(gtu12,gtu12),ToReal(2)))),kmadd(gtu13,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,kmsub(kmadd(gtu13,JacPDstandardNth1gt33,kmadd(gtu22,JacPDstandardNth2gt23,kmul(gtu23,JacPDstandardNth2gt33))),ToReal(2),kmul(gtu22,JacPDstandardNth3gt22))))),kmadd(gtu11,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu12,JacPDstandardNth2gt11,kmadd(gtu13,JacPDstandardNth3gt11,kmadd(gtu23,kmul(JacPDstandardNth1gt23,ToReal(-2)),knmsub(gtu22,JacPDstandardNth1gt22,kmadd(kmadd(gtu12,JacPDstandardNth1gt12,kmadd(gtu13,JacPDstandardNth1gt13,kmul(gtu22,JacPDstandardNth2gt12))),ToReal(2),kmadd(gtu23,kmul(JacPDstandardNth2gt13,ToReal(2)),kmadd(gtu23,kmul(JacPDstandardNth3gt12,ToReal(2)),kmul(gtu33,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33))))))))))),kmul(gtu12,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu23,kmul(JacPDstandardNth3gt22,ToReal(2)),kmadd(gtu33,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33),kmul(gtu13,kmul(JacPDstandardNth1gt23,ToReal(4))))))))))))))))); |
4886 | + |
4887 | + beta2rhsL = |
4888 | + kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu12,JacPDstandardNth1alpha,kmadd(gtu22,JacPDstandardNth2alpha,kmul(gtu23,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmadd(JacPDstandardNth2gt22,kmul(gtu22,gtu22),kmul(JacPDstandardNth2gt11,kmul(kmul(gtu12,gtu12),ToReal(2)))),kmadd(gtu23,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,kmsub(kmadd(gtu11,JacPDstandardNth1gt13,kmadd(gtu13,JacPDstandardNth1gt33,kmul(gtu23,JacPDstandardNth2gt33))),ToReal(2),kmul(gtu11,JacPDstandardNth3gt11))))),kmadd(gtu22,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu23,JacPDstandardNth3gt22,kmadd(kmadd(gtu23,JacPDstandardNth2gt23,kmul(gtu13,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth3gt12,JacPDstandardNth2gt13)))),ToReal(2),kmadd(gtu11,kmsub(JacPDstandardNth1gt12,ToReal(2),JacPDstandardNth2gt11),kmul(gtu33,kmsub(JacPDstandardNth3gt23,ToReal(2),JacPDstandardNth2gt33))))))),kmul(gtu12,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu13,kmul(JacPDstandardNth3gt11,ToReal(2)),kmadd(gtu22,kmadd(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmadd(gtu33,kmsub(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu23,kmul(JacPDstandardNth2gt13,ToReal(4)))))))))))))))))); |
4889 | + |
4890 | + beta3rhsL = |
4891 | + kmul(alphaL,kmul(phiL,kmul(ToReal(0.5),kmadd(phiL,kmul(kmadd(gtu13,JacPDstandardNth1alpha,kmadd(gtu23,JacPDstandardNth2alpha,kmul(gtu33,JacPDstandardNth3alpha))),ToReal(-2)),kmul(alphaL,kmadd(phiL,kmul(kmadd(JacPDstandardNth3gt11,kmul(gtu13,gtu13),kmul(JacPDstandardNth3gt22,kmul(gtu23,gtu23))),ToReal(2)),kmadd(gtu23,kmadd(JacPDstandardNth2phi,ToReal(2),kmul(phiL,kmadd(gtu22,JacPDstandardNth2gt22,kmadd(gtu33,JacPDstandardNth2gt33,kmsub(kmadd(gtu11,JacPDstandardNth1gt12,kmadd(gtu12,JacPDstandardNth1gt22,kmul(gtu33,JacPDstandardNth3gt23))),ToReal(2),kmul(gtu11,JacPDstandardNth2gt11)))))),kmadd(gtu33,kmadd(JacPDstandardNth3phi,ToReal(2),kmul(phiL,kmadd(gtu33,JacPDstandardNth3gt33,knmsub(gtu22,JacPDstandardNth3gt22,kmadd(kmadd(gtu22,JacPDstandardNth2gt23,kmul(gtu12,kadd(JacPDstandardNth1gt23,ksub(JacPDstandardNth2gt13,JacPDstandardNth3gt12)))),ToReal(2),kmul(gtu11,kmsub(JacPDstandardNth1gt13,ToReal(2),JacPDstandardNth3gt11))))))),kmul(gtu13,kmadd(JacPDstandardNth1phi,ToReal(2),kmul(phiL,kmadd(gtu11,JacPDstandardNth1gt11,kmadd(gtu12,kmul(JacPDstandardNth2gt11,ToReal(2)),kmadd(gtu22,kmsub(JacPDstandardNth2gt12,ToReal(2),JacPDstandardNth1gt22),kmadd(gtu33,kmadd(JacPDstandardNth3gt13,ToReal(2),JacPDstandardNth1gt33),kmul(gtu23,kmul(JacPDstandardNth3gt12,ToReal(4)))))))))))))))))); |
4892 | + } |
4893 | + else |
4894 | + { |
4895 | + beta1rhsL = |
4896 | + kmul(theta,kmul(kadd(Xt1L,kmadd(ksub(B1L,Xt1L),ToReal(ShiftBCoeff),kmul(beta1L,kmul(eta,ToReal(BetaDriver*(-1 |
4897 | + + ShiftBCoeff)))))),ToReal(ShiftGammaCoeff))); |
4898 | + |
4899 | + beta2rhsL = |
4900 | + kmul(theta,kmul(kadd(Xt2L,kmadd(ksub(B2L,Xt2L),ToReal(ShiftBCoeff),kmul(beta2L,kmul(eta,ToReal(BetaDriver*(-1 |
4901 | + + ShiftBCoeff)))))),ToReal(ShiftGammaCoeff))); |
4902 | + |
4903 | + beta3rhsL = |
4904 | + kmul(theta,kmul(kadd(Xt3L,kmadd(ksub(B3L,Xt3L),ToReal(ShiftBCoeff),kmul(beta3L,kmul(eta,ToReal(BetaDriver*(-1 |
4905 | + + ShiftBCoeff)))))),ToReal(ShiftGammaCoeff))); |
4906 | + } |
4907 | + |
4908 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED B1rhsL = |
4909 | + kmul(knmsub(B1L,kmul(eta,ToReal(BetaDriver)),dotXt1),ToReal(ShiftBCoeff)); |
4910 | + |
4911 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED B2rhsL = |
4912 | + kmul(knmsub(B2L,kmul(eta,ToReal(BetaDriver)),dotXt2),ToReal(ShiftBCoeff)); |
4913 | + |
4914 | + CCTK_REAL_VEC CCTK_ATTRIBUTE_UNUSED B3rhsL = |
4915 | + kmul(knmsub(B3L,kmul(eta,ToReal(BetaDriver)),dotXt3),ToReal(ShiftBCoeff)); |
4916 | + |
4917 | + /* Copy local copies back to grid functions */ |
4918 | + vec_store_partial_prepare(i,lc_imin,lc_imax); |
4919 | + vec_store_nta_partial(alpharhs[index],alpharhsL); |
4920 | + vec_store_nta_partial(Arhs[index],ArhsL); |
4921 | + vec_store_nta_partial(B1rhs[index],B1rhsL); |
4922 | + vec_store_nta_partial(B2rhs[index],B2rhsL); |
4923 | + vec_store_nta_partial(B3rhs[index],B3rhsL); |
4924 | + vec_store_nta_partial(beta1rhs[index],beta1rhsL); |
4925 | + vec_store_nta_partial(beta2rhs[index],beta2rhsL); |
4926 | + vec_store_nta_partial(beta3rhs[index],beta3rhsL); |
4927 | + vec_store_nta_partial(gt11rhs[index],gt11rhsL); |
4928 | + vec_store_nta_partial(gt12rhs[index],gt12rhsL); |
4929 | + vec_store_nta_partial(gt13rhs[index],gt13rhsL); |
4930 | + vec_store_nta_partial(gt22rhs[index],gt22rhsL); |
4931 | + vec_store_nta_partial(gt23rhs[index],gt23rhsL); |
4932 | + vec_store_nta_partial(gt33rhs[index],gt33rhsL); |
4933 | + vec_store_nta_partial(phirhs[index],phirhsL); |
4934 | + vec_store_nta_partial(trKrhs[index],trKrhsL); |
4935 | + vec_store_nta_partial(Xt1rhs[index],Xt1rhsL); |
4936 | + vec_store_nta_partial(Xt2rhs[index],Xt2rhsL); |
4937 | + vec_store_nta_partial(Xt3rhs[index],Xt3rhsL); |
4938 | +} |
4939 | +LC_ENDLOOP3VEC(ML_BSSN_CL_RHS1); |
4940 | +} |
4941 | |
4942 | === added file 'examples/EinsteinToolkit/ML_BSSN_CL_RHS2.cl' |
4943 | --- examples/EinsteinToolkit/ML_BSSN_CL_RHS2.cl 1970-01-01 00:00:00 +0000 |
4944 | +++ examples/EinsteinToolkit/ML_BSSN_CL_RHS2.cl 2012-12-09 00:26:22 +0000 |
4945 | @@ -0,0 +1,3877 @@ |
4946 | +// -*-C-*- |
4947 | + |
4948 | + |
4949 | + |
4950 | +#define CCTK_ATTRIBUTE_UNUSED __attribute__((__unused__)) |
4951 | +#define CCTK_BUILTIN_EXPECT(a,b) __builtin_expect(a,b) |
4952 | +#define CCTK_UNROLL _Pragma("unroll") |
4953 | + |
4954 | + |
4955 | + |
4956 | +// doubleV vector of double |
4957 | +// convert_doubleV convert to doubleV |
4958 | +// longV vector of long (same size as double) |
4959 | +// indicesV longV containing (0,1,2,...) |
4960 | +// vloadV load unaligned vector |
4961 | +// vstoreV store unaligned vector |
4962 | + |
4963 | +#if VECTOR_SIZE_I == 1 |
4964 | +# define doubleV double |
4965 | +# define convert_doubleV convert_double |
4966 | +# define longV long |
4967 | +# define indicesV ((longV)(0)) |
4968 | +# define vloadV(i,p) ((p)[i]) |
4969 | +# define vstoreV(x,i,p) ((p)[i]=(x)) |
4970 | +#elif VECTOR_SIZE_I == 2 |
4971 | +# define doubleV double2 |
4972 | +# define convert_doubleV convert_double2 |
4973 | +# define longV long2 |
4974 | +# define indicesV ((longV)(0,1)) |
4975 | +# define vloadV vload2 |
4976 | +# define vstoreV vstore2 |
4977 | +#elif VECTOR_SIZE_I == 4 |
4978 | +# define doubleV double4 |
4979 | +# define convert_doubleV convert_double4 |
4980 | +# define longV long4 |
4981 | +# define indicesV ((longV)(0,1,2,3)) |
4982 | +# define vloadV vload4 |
4983 | +# define vstoreV vstore4 |
4984 | +#elif VECTOR_SIZE_I == 8 |
4985 | +# define doubleV double8 |
4986 | +# define convert_doubleV convert_double8 |
4987 | +# define longV long8 |
4988 | +# define indicesV ((longV)(0,1,2,3,4,5,6,7)) |
4989 | +# define vloadV vload8 |
4990 | +# define vstoreV vstore8 |
4991 | +#elif VECTOR_SIZE_I == 16 |
4992 | +# define doubleV double16 |
4993 | +# define convert_doubleV convert_double16 |
4994 | +# define longV long16 |
4995 | +# define indicesV ((longV)(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)) |
4996 | +# define vloadV vload16 |
4997 | +# define vstoreV vstore16 |
4998 | +#else |
4999 | +# error |
5000 | +#endif |
clEnqueueCopyIm ageToBuffer. c and scripts/ pocl-build. in have bzr conflict markers.
Why do you use TARGET instead of HOST_CPU in the pthread driver? I think HOST_CPU is more descriptive as pthread/basic are supposed to be always driver for the same CPU as the host (and share memory with it).
What is the POCL_ALIAS_ OPENCL_ SYMBOL change? Is the attribute 'alias' portable or is it gcc-only? Can you add a comment to the file where it's defined of its purpose?
About the comment in scripts/ pocl-workgroup. in where you wonder the bitcode triplet incompatibility warning when linking bitcodes: This is a regression if the warning is again there. There used to be a detection of what is the host cpu's target triplet and it used it instead of the hard coded one when building the host cpu's kernel library. E.g. x86_64 was then build with your OSx triplet. It was just because of this, to make the warning go away -- and who knows if a kernel lib compiled with an inaccurate triplet has other more serious implications later on.