-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOneValue.m
More file actions
94 lines (77 loc) · 2.98 KB
/
OneValue.m
File metadata and controls
94 lines (77 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
(* ::Package:: *)
<< Lfunctions.m;
Clear[result];
(* Parameters to initiate before calling *)
Ltype = "GL4Holo";
level = 1;
charvalue = "No";
parity = {0, 0, 4};
OMEGA = {epsR, epsC};
OMEGA = {1, 0};
Ldata = {Ltype, level, charvalue, OMEGA, parity};
realOrImaginary = 0;
coefLimit = 3;
PRECISIONMULTIPLE = 5;
TRUNCDIGITS = 6;
startValuePrec = 4;
SDIFF = 1/3;
NLmethod = "Secant";
nrOfRuns = 100;
MaxSolutions = 1;
startNN= 30;
minWidth = 40;
minMult = 1/200;
maxPower = 4;
unknownsAtStart = 0;
nrOfExtraEquations = 5;
extraEq = {2 bb1[2] + epsR, 2 bb2[2] + epsC};
extraEq = {};
startValues = {};
knownCoef = {{2, 1.04846245223460506080-0.375239638871383270 I }};
knownCoef = {};
fileName = "Runs/Test_OneValueFistGL3.txt"
RstartList=SetPrecision[candidates, PRECISIONMULTIPLE TRUNCDIGITS];
startValueList = SetPrecision[candStartV, PRECISIONMULTIPLE TRUNCDIGITS];
Print["Rlist: ", N[RstartList,5]];
For[Rloop=1,Rloop<=Length[RstartList],Rloop++,
Rtuple=RstartList[[Rloop]];
If[Length[startValueList]>=Rloop,
startValues = {startValueList[[Rloop]]};
];
(* Global L-function parameters. *)
Print[Ldata];
Q = QValue[Ltype, level];
klist = getKlist[Ltype];
reslist = {};
polelist = {};
llist = getLlist[Ltype, Rtuple, parity];
(* Local testfunction parameters. *)
Param = Table[{1/25, 2/5 + (i-1)/2, 0}, {i, 2}];
v = 2;
Print[fileName];
(* Global precision parameters. *)
DIGITS = TRUNCDIGITS + 8;
PRECISION = Max[PRECISIONMULTIPLE * TRUNCDIGITS, MachinePrecision];
MYPRECISION =PRECISION;
(* Precomputations. *)
logQ = N[Log[Q],PRECISION + 2];
logQlogN = Table[logQ-Log[n],{n,1,1000}];
(* Local testfunction parameters. *)
{NN, sSeq, paraSeq} = getFuncEqParameters[{1,0},klist,llist,reslist,polelist,Param,v,minWidth,startNN,minMult,realOrImaginary];
{plist, highplist, nonplist, knownlist} = getUnknowns[Ldata, NN ,maxPower, knownCoef];
stillUnknowns = Union[plist,highplist];
nrOfUnknowns = (2-Abs[realOrImaginary]) Length[stillUnknowns];
nrOfEquations = nrOfUnknowns + nrOfExtraEquations;
{slist, paralist} = getSlist[sSeq, paraSeq, nrOfEquations,SDIFF,realOrImaginary];
Print["Unknowns: ", stillUnknowns , " " ,Length[stillUnknowns], "st"];
Print["Size of system: ", nrOfEquations, " x ", nrOfUnknowns];
(* Precomputations. *)
incr=2*Pi*v/Log[10]/DIGITS; (* Not good if v is large *)
M=Sqrt[Log[10]*DIGITS/Param[[1,1]]];
expz=Table[Exp[(v+I*k)*logQlogN[[n]]]/(v+I*k),{n,1,NN},{k,-M,M,incr}];
llist = getLlist[Ltype, Rtuple, parity];
phaseFactor = getPhaseFactor[Ltype, Rtuple];
result[Rtuple]=solveForOneNL[Ldata, klist, llist, reslist, polelist, phaseFactor, slist, paralist, Param, nrOfRuns, NN, M, incr, v, expz, startValues, knownCoef, maxPower, NLmethod, MaxSolutions, startValuePrec, realOrImaginary,extraEq];
Save[fileName,result];
(*Clear[result];*)
]