CUFFT Real to Complex. Works with float but not with double

I’m trying to perform a Real to Complex 512-long transformation of an array of 90 elements.
Thus I’m allocating a real input array of 512 elements and a complex output array of 257 elements (512/2 + 1).
Furthermore, I’m trying to perform both with double and float values: definitions below are used to smoothly move from the former to the latter.

When using float, everything seem to work properly (coefficients tested with python as well).
But when moving to double precision, the coefficients make no sense; only the first 127 and a half complex values seem to be non-zero, equivalent to 257 numbers totally.
Does this has anything to do with data alignment?
I’ve read from the documentation of the function cufftExecR2C that

Pointers to idata and odata are both required to be aligned to cufftComplex data type in single-precision transforms and cufftDoubleComplex data type in double-precision transforms.

But I can’t understand how to deal with that, provided that is the problem.

Below the definitions, the code and the outputs are presented.

Thanks in advance for the support

#define USE_FLOAT 1
	typedef int I;
#if USE_FLOAT
	typedef float D;
	typedef cufftComplex Complex;
#define cufft_r2c cufftExecR2C
#define cufft_c2r cufftExecC2R
#define cufft_r2r cufftExecR2R
#define cufft_c2c cufftExecC2C
#else
	typedef double D;
	typedef cufftDoubleComplex Complex;
#define cufft_r2c cufftExecD2Z
#define cufft_c2r cufftExecZ2D
#define cufft_r2r cufftExecD2D
#define cufft_c2c cufftExecZ2Z
#endif

Here is the code used:

void perform_r2c_fft(D* h, int h_size)
{
	cudaError_t cuda_error;

	int N = 512;

	int Nout = N / 2 + 1;

	// -- Device side output data allocation
	Complex* dH;
	cuda_error = cudaMalloc((void**)&dH, sizeof(Complex) * Nout);
	cudaMemset(dH, 0, sizeof(Complex) * Nout);

	// -- Device side input data allocation and initialization
	D* dh;
	cuda_error = cudaMalloc((void**)&dh, sizeof(D) * N);
	cuda_error = cudaMemcpy(dh, h, sizeof(D) * h_size, cudaMemcpyHostToDevice);
	// Zero padding from h_size to N
	cuda_error = cudaMemset(&dh[h_size], 0, sizeof(D) * (N - h_size));

	// Plan definition
	cufftHandle plan;
	cufftResult res = cufftPlan1d(&plan, N, CUFFT_R2C, 1);
	if (res != CUFFT_SUCCESS) throw "Error creating cufftPlan1d";

	// Calculate frequency domain filter coefficients
	res = cufft_r2c(plan, dh, dH);
	cudaDeviceSynchronize();

	// --- Host-side output
	Complex* H = new Complex[Nout];
	cuda_error = cudaMemcpy(H, dH, sizeof(Complex) * Nout, cudaMemcpyDeviceToHost);

	printf("Output Array: ");
	for (int i = 0; i < Nout; i++) printf("%.6f + j%.6f\n", H[i].x, H[i].y);

	cufftDestroy(plan);

}

int main()
{
	D h[90]{ 0.00026579,  0.00080432,  0.00137513,  0.00200095,  0.00269536,
		0.00345938,  0.0042791 ,  0.00512453,  0.00594991,  0.00669539,
		0.00729014,  0.00765669,  0.00771625,  0.00739475,  0.00662901,
		0.00537293,  0.00360291,  0.00132242, -0.00143499, -0.00460419,
	   -0.00808895, -0.01176434, -0.0154811 , -0.01907175, -0.02235826,
	   -0.02516079, -0.02730716, -0.02864244, -0.02903819, -0.0284007 ,
	   -0.02667787, -0.02386411, -0.02000309, -0.015188  , -0.0095592 ,
	   -0.00329947,  0.00337317,  0.01021462,  0.01696536,  0.02336222,
		0.02915055,  0.0340962 ,  0.03799665,  0.04069074,  0.04206649,
		0.04206649,  0.04069074,  0.03799665,  0.0340962 ,  0.02915055,
		0.02336222,  0.01696536,  0.01021462,  0.00337317, -0.00329947,
	   -0.0095592 , -0.015188  , -0.02000309, -0.02386411, -0.02667787,
	   -0.0284007 , -0.02903819, -0.02864244, -0.02730716, -0.02516079,
	   -0.02235826, -0.01907175, -0.0154811 , -0.01176434, -0.00808895,
	   -0.00460419, -0.00143499,  0.00132242,  0.00360291,  0.00537293,
		0.00662901,  0.00739475,  0.00771625,  0.00765669,  0.00729014,
		0.00669539,  0.00594991,  0.00512453,  0.0042791 ,  0.00345938,
		0.00269536,  0.00200095,  0.00137513,  0.00080432,  0.00026579 };
	
	perform_r2c_fft(h, 90);

}
/// --- USING FLOAT
Output Array: 
-0.004787 + j0.000000
-0.003775 + j0.002294
-0.000699 + j0.001347
-0.000595 + j-0.008797
-0.019200 + j-0.027261
-0.072286 + j-0.031513
-0.148878 + j0.020220
-0.193315 + j0.156675
-0.125115 + j0.349673
0.102561 + j0.499567
0.444363 + j0.478348
0.756379 + j0.214323
0.863254 + j-0.238895
0.664218 + j-0.706277
0.207039 + j-0.977974
-0.325518 + j-0.927667
-0.713126 + j-0.585248
-0.817141 + j-0.116092
-0.645789 + j0.276827
-0.329441 + j0.461726
-0.031767 + j0.430649
0.139872 + j0.273683
0.171677 + j0.105784
0.118912 + j0.000730
0.051290 + j-0.030742
0.010265 + j-0.019492
-0.000086 + j-0.001405
0.004055 + j0.005833
0.007647 + j0.003390
0.006282 + j-0.000814
0.002885 + j-0.002309
0.000626 + j-0.001716
-0.000205 + j-0.001029
-0.000695 + j-0.000757
-0.001139 + j-0.000330
-0.001011 + j0.000273
-0.000288 + j0.000302
0.000125 + j-0.000571
-0.000528 + j-0.001535
-0.001779 + j-0.001478
-0.002350 + j-0.000349
-0.001613 + j0.000680
-0.000355 + j0.000491
0.000057 + j-0.000711
-0.000814 + j-0.001617
-0.002003 + j-0.001251
-0.002217 + j-0.000027
-0.001239 + j0.000732
-0.000131 + j0.000245
-0.000051 + j-0.000914
-0.001013 + j-0.001476
-0.001923 + j-0.000867
-0.001792 + j0.000221
-0.000783 + j0.000619
0.000020 + j-0.000053
-0.000197 + j-0.001021
-0.001123 + j-0.001239
-0.001715 + j-0.000509
-0.001338 + j0.000353
-0.000418 + j0.000433
0.000068 + j-0.000305
-0.000347 + j-0.001030
-0.001153 + j-0.000971
-0.001453 + j-0.000225
-0.000933 + j0.000387
-0.000167 + j0.000228
0.000042 + j-0.000486
-0.000479 + j-0.000966
-0.001120 + j-0.000709
-0.001177 + j-0.000022
-0.000601 + j0.000350
-0.000018 + j0.000033
-0.000029 + j-0.000598
-0.000577 + j-0.000852
-0.001037 + j-0.000475
-0.000909 + j0.000106
-0.000344 + j0.000269
0.000052 + j-0.000136
-0.000120 + j-0.000646
-0.000636 + j-0.000711
-0.000919 + j-0.000279
-0.000665 + j0.000171
-0.000159 + j0.000163
0.000062 + j-0.000270
-0.000213 + j-0.000643
-0.000657 + j-0.000560
-0.000780 + j-0.000125
-0.000454 + j0.000185
-0.000037 + j0.000049
0.000034 + j-0.000365
-0.000293 + j-0.000601
-0.000642 + j-0.000412
-0.000632 + j-0.000016
-0.000279 + j0.000161
0.000033 + j-0.000059
-0.000018 + j-0.000421
-0.000354 + j-0.000530
-0.000598 + j-0.000278
-0.000485 + j0.000054
-0.000144 + j0.000111
0.000059 + j-0.000154
-0.000079 + j-0.000442
-0.000392 + j-0.000443
-0.000530 + j-0.000164
-0.000348 + j0.000087
-0.000046 + j0.000047
0.000054 + j-0.000228
-0.000140 + j-0.000433
-0.000405 + j-0.000349
-0.000448 + j-0.000075
-0.000228 + j0.000091
0.000016 + j-0.000022
0.000028 + j-0.000280
-0.000192 + j-0.000400
-0.000395 + j-0.000257
-0.000359 + j-0.000011
-0.000128 + j0.000072
0.000049 + j-0.000088
-0.000011 + j-0.000309
-0.000231 + j-0.000351
-0.000366 + j-0.000173
-0.000270 + j0.000028
-0.000050 + j0.000038
0.000057 + j-0.000144
-0.000055 + j-0.000316
-0.000254 + j-0.000291
-0.000321 + j-0.000102
-0.000186 + j0.000045
0.000004 + j-0.000004
0.000046 + j-0.000188
-0.000096 + j-0.000304
-0.000260 + j-0.000227
-0.000267 + j-0.000046
-0.000112 + j0.000044
0.000037 + j-0.000049
0.000023 + j-0.000217
-0.000131 + j-0.000276
-0.000251 + j-0.000166
-0.000208 + j-0.000008
-0.000051 + j0.000028
0.000051 + j-0.000091
-0.000007 + j-0.000230
-0.000155 + j-0.000239
-0.000229 + j-0.000110
-0.000150 + j0.000015
-0.000005 + j0.000004
0.000050 + j-0.000126
-0.000038 + j-0.000229
-0.000168 + j-0.000195
-0.000197 + j-0.000064
-0.000095 + j0.000023
0.000026 + j-0.000026
0.000038 + j-0.000151
-0.000067 + j-0.000215
-0.000170 + j-0.000150
-0.000159 + j-0.000029
-0.000048 + j0.000019
0.000043 + j-0.000055
0.000018 + j-0.000166
-0.000089 + j-0.000192
-0.000161 + j-0.000107
-0.000119 + j-0.000005
-0.000011 + j0.000006
0.000047 + j-0.000082
-0.000004 + j-0.000170
-0.000104 + j-0.000162
-0.000143 + j-0.000070
-0.000079 + j0.000007
0.000016 + j-0.000012
0.000042 + j-0.000103
-0.000026 + j-0.000164
-0.000110 + j-0.000130
-0.000118 + j-0.000039
-0.000043 + j0.000010
0.000033 + j-0.000032
0.000030 + j-0.000116
-0.000045 + j-0.000150
-0.000108 + j-0.000097
-0.000091 + j-0.000017
-0.000013 + j0.000005
0.000040 + j-0.000051
0.000014 + j-0.000122
-0.000059 + j-0.000130
-0.000099 + j-0.000067
-0.000063 + j-0.000003
0.000009 + j-0.000005
0.000039 + j-0.000067
-0.000002 + j-0.000120
-0.000067 + j-0.000106
-0.000084 + j-0.000042
-0.000036 + j0.000003
0.000024 + j-0.000018
0.000032 + j-0.000078
-0.000017 + j-0.000111
-0.000069 + j-0.000082
-0.000066 + j-0.000022
-0.000014 + j0.000003
0.000031 + j-0.000030
0.000022 + j-0.000083
-0.000029 + j-0.000098
-0.000065 + j-0.000059
-0.000047 + j-0.000009
0.000004 + j-0.000001
0.000032 + j-0.000041
0.000010 + j-0.000083
-0.000036 + j-0.000081
-0.000056 + j-0.000038
-0.000028 + j-0.000002
0.000016 + j-0.000008
0.000029 + j-0.000049
-0.000001 + j-0.000077
-0.000039 + j-0.000063
-0.000044 + j-0.000022
-0.000012 + j0.000001
0.000022 + j-0.000016
0.000022 + j-0.000052
-0.000010 + j-0.000067
-0.000038 + j-0.000045
-0.000031 + j-0.000011
0.000001 + j-0.000000
0.000023 + j-0.000022
0.000014 + j-0.000051
-0.000016 + j-0.000054
-0.000032 + j-0.000030
-0.000019 + j-0.000004
0.000009 + j-0.000003
0.000021 + j-0.000026
0.000006 + j-0.000046
-0.000018 + j-0.000041
-0.000025 + j-0.000017
-0.000008 + j-0.000000
0.000013 + j-0.000007
0.000016 + j-0.000027
-0.000000 + j-0.000038
-0.000017 + j-0.000028
-0.000016 + j-0.000008
-0.000000 + j0.000000
0.000013 + j-0.000009
0.000010 + j-0.000024
-0.000004 + j-0.000027
-0.000013 + j-0.000016
-0.000008 + j-0.000003
0.000004 + j-0.000001
0.000010 + j-0.000010
0.000005 + j-0.000018
-0.000005 + j-0.000017
-0.000008 + j-0.000007
-0.000002 + j-0.000000
0.000005 + j-0.000002
0.000006 + j-0.000007
0.000001 + j-0.000010
-0.000003 + j-0.000006
-0.000002 + j-0.000002
0.000001 + j0.000000
0.000002 + j-0.000001
0.000001 + j-0.000002
0.000000 + j0.000000



/// --- WHEN USING DOUBLE

Output Array: 
1.056853e-314 + j-1.112691e+304
2.009552e+300 + j-3.978238e+298
-5.845404e+304 + j-2.001387e+294
-4.961443e+299 + j-2.765925e+304
-1.567726e+295 + j-9.632719e+300
-5.201272e+304 + j-9.459616e+296
-9.563614e+301 + j-4.370071e+305
-5.903759e+299 + j-3.882458e+301
-7.552066e+305 + j-2.031627e+300
-3.773517e+297 + j-1.342530e+305
-6.865519e+298 + j9.516175e+298
-9.231439e+303 + j-9.418773e+289
3.757104e+301 + j-2.295619e+302
4.262638e+297 + j1.384369e+302
-4.169404e+301 + j2.290669e+300
1.969902e+303 + j-3.946731e+300
1.939703e+302 + j9.362080e+304
-3.672554e+292 + j1.041087e+303
1.253759e+306 + j3.290171e+299
6.475637e+301 + j3.229789e+305
3.009233e+299 + j3.170461e+299
2.684883e+304 + j7.019249e+296
1.517106e+300 + j3.236788e+304
1.081254e+291 + j6.399427e+299
6.667138e+304 + j-6.435954e+297
-1.976242e+299 + j8.134584e+303
-1.917638e+301 + j-6.474342e+303
7.058091e+300 + j-1.113822e+302
-2.538572e+304 + j1.080112e+296
-1.569459e+302 + j-1.898432e+304
6.443101e+291 + j-5.533434e+302
-3.068953e+304 + j-1.166655e+290
-3.802716e+303 + j-1.528066e+305
-1.238919e+295 + j-3.082286e+303
-5.092469e+305 + j-5.480403e+292
-1.697495e+301 + j-1.303525e+305
1.871401e+297 + j4.164233e+297
-3.657025e+303 + j7.917431e+299
4.217182e+300 + j-7.027831e+301
8.817596e+300 + j3.049259e+299
-7.494932e+301 + j5.099129e+302
1.498692e+302 + j-8.239478e+300
2.106121e+304 + j1.032556e+305
-1.382783e+294 + j2.031178e+304
5.925819e+305 + j1.290224e+296
4.663937e+302 + j5.639285e+304
9.387252e+291 + j6.660779e+301
1.070437e+304 + j-1.761637e+293
4.598253e+302 + j2.299140e+304
-2.390619e+298 + j6.609436e+301
2.405509e+304 + j-5.731067e+301
-1.329523e+296 + j1.355715e+303
-2.405760e+303 + j-7.524686e+302
2.296130e+300 + j-6.136079e+303
-8.663927e+303 + j4.729869e+296
-3.596022e+303 + j-4.282579e+303
1.615520e+294 + j-8.717128e+303
-6.138839e+303 + j5.611409e+289
-5.386840e+304 + j-6.144206e+304
9.104833e+289 + j-4.098655e+304
-2.198376e+305 + j6.565169e+298
-7.659369e+301 + j-2.117953e+304
2.295139e+301 + j5.285447e+293
-1.633891e+302 + j3.433829e+301
0.000000e+00 + j-3.433825e+301
1.633890e+302 + j-5.285325e+293
-2.295131e+301 + j2.117955e+304
7.659385e+301 + j-6.565121e+298
2.198379e+305 + j4.098655e+304
-9.104596e+289 + j6.144210e+304
5.386848e+304 + j-5.611171e+289
6.138850e+303 + j8.717138e+303
-1.615501e+294 + j4.282573e+303
3.596017e+303 + j-4.729869e+296
8.663927e+303 + j6.136079e+303
-2.296130e+300 + j7.524686e+302
2.405757e+303 + j-1.355715e+303
1.329507e+296 + j5.731047e+301
-2.405511e+304 + j-6.609453e+301
2.390611e+298 + j-2.299145e+304
-4.598259e+302 + j1.761637e+293
-1.070436e+304 + j-6.660783e+301
-9.387252e+291 + j-5.639285e+304
-4.663937e+302 + j-1.290230e+296
-5.925819e+305 + j-2.031174e+304
1.382813e+294 + j-1.032553e+305
-2.106120e+304 + j8.239508e+300
-1.498692e+302 + j-5.099132e+302
7.494940e+301 + j-3.049253e+299
-8.817575e+300 + j7.027843e+301
-4.217164e+300 + j-7.917425e+299
3.657025e+303 + j-4.164223e+297
-1.871401e+297 + j1.303522e+305
1.697490e+301 + j5.480342e+292
5.092469e+305 + j3.082281e+303
1.238895e+295 + j1.528068e+305
3.802716e+303 + j1.166726e+290
3.068953e+304 + j5.533440e+302
-6.442949e+291 + j1.898433e+304
1.569461e+302 + j-1.080099e+296
2.538572e+304 + j1.113819e+302
-7.058091e+300 + j6.474332e+303
1.917635e+301 + j-8.134589e+303
1.976239e+299 + j6.435949e+297
-6.667142e+304 + j-6.399434e+299
-1.081273e+291 + j-3.236790e+304
-1.517116e+300 + j-7.019299e+296
-2.684888e+304 + j-3.170477e+299
-3.009239e+299 + j-3.229786e+305
-6.475637e+301 + j-3.290174e+299
-1.253759e+306 + j-1.041087e+303
3.672615e+292 + j-9.362097e+304
-1.939699e+302 + j3.946736e+300
-1.969898e+303 + j-2.290664e+300
4.169408e+301 + j-1.384367e+302
-4.262618e+297 + j2.295626e+302
-3.757100e+301 + j9.419010e+289
9.231439e+303 + j-9.516119e+298
6.865519e+298 + j1.342531e+305
3.773522e+297 + j2.031627e+300
7.552060e+305 + j3.882450e+301
5.903744e+299 + j4.370061e+305
9.563581e+301 + j9.459491e+296
5.201268e+304 + j9.632698e+300
1.567695e+295 + j2.765918e+304
4.961424e+299 + j2.001348e+294
5.845395e+304 + j3.978226e+298
-2.009560e+300 + j1.112691e+304
1.056853e-314 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00
0.000000e+00 + j0.000000e+00

The problem is here:

The correct transform type in the double case is CUFFT_D2Z, and you cannot use CUFFT_R2C as a substitute.

If you had checked the result of calling:

You would have seen an error reported there (in the double case).

Ok. It was a very stupid slip. Thank you so much for having spotted it!