
// Make newform 880.3.n.a in Magma, downloaded from the LMFDB on 21 September 2025.
// To make the character of type GrpDrchElt, type "MakeCharacter_880_n();"
// To make the character of type GrpDrchElt with Codomain the HeckeField, type "MakeCharacter_880_n_Hecke();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_880_3_n_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_880_3_n_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function ConvertToHeckeField(input: pass_field := false, Kf := [])
    if not pass_field then
        poly := [10140467375, -2184739000, 2865489185, -1369163130, 731692651, -131267320, 158315250, -80078900, 1425331, 6526640, 3816735, -1891870, -363739, 237880, 16590, -17140, 281, 600, -35, -10, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [20394260293268280739175, -393008078099538188525, 510277133547028223305, -259119809412934057060, 188824704247152016670, -65476253498072429694, 13839928010410124558, 4164360003795944264, 1972761897849907605, -1507962507268610471, -160249725197812505, 203129458896771552, 4722085372444990, -15605055085705106, 705356681246886, 565441253629844, -43096714616065, -9735332501529, 1081703611281, 0], [-18820960121954300832625, -1619071916326918278703375, 1240734557488807211895235, 688338828221600766355140, -185146438430535238197194, -158358602274293363665498, 525562183437353837282, 41086143238684732695960, -5640645470410636789323, -3067192405168878067821, 571725753894880250869, 49198176003452785760, -28604317678984959322, 7692005157188053786, 90359469004664426, -435281437777673460, 29156741182515639, 8912978308127133, -990330923125237, 0], [74240818374617521822250, -48653161260747833151000, 7172770641507457584245, 65183966268347901979255, 8404641100844663551697, -39970300868494692925916, -817706282173032467161, 9742835785507467485935, 334567660639354336524, -1541723000104076912437, 20457265763638087128, 135581210875874593315, -5458838484158167514, -7128371549832404753, 473755950020676847, 205118158462630420, -17692908143841857, -2804774704936569, 311641633881841, 0], [-10451817607501626309952750, -1104472370920153061399875, -108651041706983001755795, 2194699993515483082649070, -553190716257723838291502, -559313757983936729303314, 40603287989562064681016, 105092568678847472853810, -2890958736630470208234, -13314221625023257075263, 504192853703138660677, 1033788859747633585970, -57084314887276172476, -48386987851827780932, 3566872368007853528, 1268322452150807100, -114853222121219388, -15418970963869941, 1713218995985549, 0], [6082363971043634853893625, 43653602054885314012625, 520141821372689506283915, -1162262900450745174492340, 661287280200702924561914, -80634562794586645263722, 8807540068077030189378, 705166411188468448400, 16295555074888248782763, -7986334761608162571989, -1169689306040063623139, 1226961743792765464120, 19133598651051891682, -90902972989595896206, 4445176329433645834, 3181556028807755420, -250926354335803159, -51800523270058683, 5755613696673187, 0], [-2573770480422227252134925, 314389330602378189988100, -380865828985378531149720, 120066753877971728557180, -32742550779995851667658, -19751666843341920236256, -12763536753763444173896, 12144288064858667300500, 2093211125136378268749, -2787245081966725633792, -38177706373812098192, 279289865499314562660, -10110120551875213374, -15159813164954138548, 1009610577445549752, 436227251927481160, -38151184558636217, -5780195976105504, 642243997345056, 0], [-15998334027151183585029875, 6344002036759912461310375, -7602282793347621019634695, 2533769464252366414653720, -1321479369592874963530402, 100491720432932377637146, -99080691364955135085254, 69494997543664633876500, -31154854119263525313609, 5014471847053117062177, 2793295353358849190627, -1605111635463432141860, -99720230969516025926, 147563660285671832258, -5892032471794507262, -5630528898119457660, 425774067049940337, 98132486546467719, -10903609616274191, 0], [1590139457109393363109075, -128666220580329687722350, 170978275690800492252960, -97469460626481110552660, 79125690523018607589810, -31981835081802553576236, 4156393761757878760042, 3723678890091005108836, 1168428247450371936135, -1078554048440635505554, -81916544771896542800, 133373778102838416108, 733762040072354340, -9349886905087366204, 469662467821175664, 322518288270037216, -25379800833273035, -5271171247228806, 585685694136534, 0], [-10846114491436964495688625, 13908758786984678127870875, -13700356670636910907676735, 28422290229410689116660, -1080609940437007898453786, 1158949491276415253862338, -213931282340051119029442, -93156087464369979953760, -38261042573846971402587, 31029410351526670211001, 3049010496867642317911, -4120471300596854795560, -48110392749773979418, 298688192872081395334, -14593087770684737506, -10451582359709965740, 819523252736465991, 171855720786098727, -19095080087344303, 0], [-81495433465637416791045725, -108579967001209202943851575, 826352737413147724997094495, -598015574055323324813936110, 98796107281930172235902526, -92459186126627611686035586, 45864791617520369037940754, -4598997503412446148526884, -3742351412514189132458247, -1769438081414295164967941, 1122231945659301247640793, 160138179179137586711610, -143214316387641888677834, -6189556879395203631270, 10443336942955137825042, -327025088726324942488, -368089188473419795245, 24808580760422774397, 6165343216071616191, -648983496428591178], [-1722719414162445084436904675, 3717009662257374205399752375, -826352737413147724997094495, 598015574055323324813936110, -98796107281930172235902526, 92459186126627611686035586, -45864791617520369037940754, 4598997503412446148526884, 3742351412514189132458247, 1769438081414295164967941, -1122231945659301247640793, -160138179179137586711610, 143214316387641888677834, 6189556879395203631270, -10443336942955137825042, 327025088726324942488, 368089188473419795245, -24808580760422774397, -6165343216071616191, 648983496428591178], [6701187899765507453115313611375, -11657586001564825517800132421125, -4732971466873357219296375225515, 1580927850949477107631205249170, 2036093647489005785744314275586, -211500609371149149871422888750, -496814793295489421230717621622, 5225561773307630594195046776, 77701746432094149788533643837, 7983062981643495439541118205, -11985027803710883596753191289, -498955607828720755633195438, 1112757353104614300330796718, -5643468156691719360972710, -62579760493189238323393046, 2922748312447622883479568, 1893892283712472273407859, -141007842919625525426245, -27267671329241384599403, 2870281192551724694674], [738155994335569036825450067000, -1480819797244847150727107308375, 55449861540672458201245976455, -170300231552045526326831313740, 178937907847812596928274967698, -34270452329077452701317293830, -26989689174130776371790541276, -4708495985138892508292112822, 5484725499448975297678292156, 2602866329285067806801143245, -1710049061731269597505416337, -179378820876245455381239944, 200140152809183499531564244, 2079598146194262382547100, -12363664864220053624899368, 532637101723885335554364, 389354549493021817765402, -28694781957106177003765, -5703878543436051499349, 600408267730110684142], [819583564968385341909024153475, -1798157993335639380659032764125, 512104469074112831139319174105, -438701386792509273583538625450, 80020698543675813146684249838, 88086778936377703891270356042, -94391789746535636199157730778, -5432037792122066963371901892, 17124763760461396817924477609, 3426676920179878183460134657, -3342936797939892459224273201, -231479625888050399885150530, 344199399329954159204510518, 2138389108820395236734230, -20716755121022128462918274, 889617351802794306335656, 652508938040536993373635, -47517339131521078693129, -9749472761670895077727, 1026260290702199481866], [-8826882165808120981820263724875, 16657671411765533742269051387125, 1939411037427569330184781677315, 1962415928766370683269038019830, -4080212353615269328802662940786, 166750181724066179879693011470, 1154069623461096547121638164502, 74559290681663594659974864224, -235538361458632034950059984057, -17052608390566067834949588885, 33783927526831596670174529449, 548979859116524778101407878, -2836718853757107691999109678, 62517471141738066275770110, 142830208256304617372709486, -7739294197615728170693248, -3973334932293023538988479, 311015782377820848329805, 52145128709080248164123, -5488960916745289280434], [3669069260179187331370427693125, -6231686572465932807741565422750, -3098441212140444025718345544070, 1306411889811655039509200452510, 1211622460629365593852136367508, -605973967911211736178818371800, 69526896472750604906487697414, 42120418391658114576281379398, -26634379214857292151979037669, -13870454543603693450677708840, 8827292820601690886619973068, 949411345777251710070484186, -1033591756175367629599724586, -18566036240791597318722970, 66467246339492035533615002, -2631186502675007160833756, -2166413482409382615652753, 154722823776344145538360, 33383116874919897199086, -3514012302623147073588], [-5718787503113939464979366336575, 12461210089774999532074529129525, -3137384163795442182566943653065, 2364157955663029748423193479130, -582097548012880709959957865190, 561850447568749174945553708742, -292115016484001562762890789766, 40344842964546850043163112884, 16627055914813915190884062547, 11672512474778649139439389271, -6436766330670154969812361567, -1135170304414677021077335406, 898251343640092961311483106, 46407470223956613797382122, -68149455043824961300346398, 2016833826828875691463160, 2441052841801435938066737, -163590201783119673506735, -41197495162545831892529, 4336578438162719146582], [176591488112342679855490243225, -80148085812873895230243427075, -859738017760553974525693669805, 719467753055892130733933763630, -255666483341175551708949530882, 168582535614004911067864640606, -53795787838481976786122499162, 1655168162720472106120392568, 3454237675930997057840808875, 5916609490890235597063391931, -2799438940571528124976439839, -497860305624165805039337202, 396902675729257174126837746, 16342324418226849448843430, -28716329544213178569604586, 952041928224532269425040, 996126115274153377179061, -68559167177955720687667, -16210713500452147111133, 1706390894784436538014], [-1101557085759536005746809913025, 2266477088686919687911548185625, -129392482135635742230157444465, -76400820410770960571731658030, 112220936448441834973816343542, 194315577642681633342497927230, -185897441039797757977518908262, -14339447951223379804198730900, 36113858282904271500111428757, 6600737141967040356584931243, -6814392051238830394339442439, -414719511076700226642998246, 680220209689197731231545270, 2458269867898947256074714, -40310170331225598302568126, 1755797014970637713680712, 1260998255454328954208631, -91831335645825866207187, -18840466763325846723433, 1983207027718510181414]];
    Rf_basisdens := [1, 1974304107987355126400, 1169775183982507912392000, 292443795995626978098000, 1169775183982507912392000, 2339550367965015824784000, 233955036796501582478400, 2339550367965015824784000, 116977518398250791239200, 2339550367965015824784000, 3608429695256165002455900800, 1804214847628082501227950400, 4275989188878555527910242448000, 712664864813092587985040408000, 855197837775711105582048489600, 4275989188878555527910242448000, 2137994594439277763955121224000, 855197837775711105582048489600, 285065945925237035194016163200, 285065945925237035194016163200];
    Rf_basisnums := ChangeUniverse([[z : z in elt] : elt in Rf_num], Kf);
    Rfbasis := [Rf_basisnums[i]/Rf_basisdens[i] : i in [1..Degree(Kf)]];
    inp_vec := Vector(Rfbasis)*ChangeRing(Transpose(Matrix([[elt : elt in row] : row in input])),Kf);
    return Eltseq(inp_vec);
end function;


// To make the character of type GrpDrchElt, type "MakeCharacter_880_n();"
function MakeCharacter_880_n()
    N := 880;
    order := 2;
    char_gens := [111, 661, 177, 321];
    v := [1, 2, 1, 2];
    // chi(gens[i]) = zeta^v[i]
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    F := CyclotomicField(order);
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),[F|F.1^e:e in v]);
    return MinimalBaseRingCharacter(chi);
end function;

// To make the character of type GrpDrchElt with Codomain the HeckeField, type "MakeCharacter_880_n_Hecke();"
function MakeCharacter_880_n_Hecke( : Kf := false)
    N := 880;
    order := 2;
    char_gens := [111, 661, 177, 321];
    char_values := [[-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    values := ConvertToHeckeField(char_values : pass_field := ISA(Type(Kf), Fld), Kf := Kf); // the value of chi on the gens as elements in the Hecke field
    F := Universe(values);// the Hecke field
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),values);
    return chi;
end function;


function ExtendMultiplicatively(weight, aps, character)
    prec := NextPrime(NthPrime(#aps)) - 1; // we will able to figure out a_0 ... a_prec
    primes := PrimesUpTo(prec);
    prime_powers := primes;
    assert #primes eq #aps;
    log_prec := Floor(Log(prec)/Log(2)); // prec < 2^(log_prec+1)
    F := Universe(aps);
    FXY<X, Y> := PolynomialRing(F, 2);
    // 1/(1 - a_p T + p^(weight - 1) * char(p) T^2) = 1 + a_p T + a_{p^2} T^2 + ...
    R<T> := PowerSeriesRing(FXY : Precision := log_prec + 1);
    recursion := Coefficients(1/(1 - X*T + Y*T^2));
    coeffs := [F!0: i in [1..prec]];
    coeffs[1] := 1; //a_1
    for i := 1 to #primes do
        p := primes[i];
        coeffs[p] := aps[i];
        b := p^(weight - 1) * F!character(p);
        r := 2;
        p_power := p * p;
        //deals with powers of p
        while p_power le prec do
            Append(~prime_powers, p_power);
            coeffs[p_power] := Evaluate(recursion[r + 1], [aps[i], b]);
            p_power *:= p;
            r +:= 1;
        end while;    
    end for;
    Sort(~prime_powers);
    for pp in prime_powers do
        for k := 1 to Floor(prec/pp) do
            if GCD(k, pp) eq 1 then
                coeffs[pp*k] := coeffs[pp]*coeffs[k];
            end if;
        end for;
    end for;
    return coeffs;
end function;


function qexpCoeffs()
    // To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
    weight := 3;
    raw_aps := [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0], [2, -1, 0, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, -2, 3, 1, -3, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [8, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 3, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, -1, 2, 0, -1, 1, 0, 1, 0], [0, 0, 0, -2, -1, 2, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, -1, -1, 2, 0, 0], [-22, 1, 0, 3, 0, 3, 2, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, -1, 4, 0, 4, -4, 0, -1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, -2, -2, 0, 0, -1], [0, 0, 4, -4, -1, 4, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, -2, -2, -2, -4, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 4, 7, 0, 4, -4, 0, -2, 0], [3, -1, 0, -8, 0, -8, 2, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -10, 7, 2, -7, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-24, 2, 0, 0, 0, 0, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, -2, 0, 1, -1, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, -10, 5, 0, 2, -2, 0, 4, 0], [-20, 8, 0, 4, 0, 4, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 6, -1, 0, 1, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 8, -7, 0, 2, -2, 0, 4, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, -5, -4, -4, -1, 0, 2], [0, 0, -14, 7, -2, -7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, -8, -4, -4, 2, 0, 2], [26, -1, 0, 7, 0, 7, 2, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 4, 4, 4, -4, 0, -2], [0, 0, -6, 7, 7, -7, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -27, 0, 12, 0, 0, -3, 3, 0, -2, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, -13, 2, 0, -4, 4, 0, -6, 0], [0, 0, 0, -14, 7, 14, 0, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, -5, -5, -6, 0, -2], [28, -6, 0, 3, 0, 3, -4, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 14, 7, 7, 4, 0, -2], [0, 0, 8, -9, 4, 9, 0, -9, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -4, 4, -3, -4, 0, -6, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -17, 0, 0, -2, 7, 7, 8, 0, -1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, -21, -6, -6, 3, 0, -2], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 5, -14, 0, -8, 8, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 1, 0, -8, 8, 0, 4, 0], [-2, 10, 0, -1, 0, -1, -14, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 16, -13, 6, 13, 0, -1, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, 8, 8, 8, -2, 0, 2], [4, -8, 0, 12, 0, 12, 10, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, -16, -11, -11, -2, 0, -2], [0, 0, 0, 6, 20, -6, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, -25, -2, 0, -2, 2, 0, -6, 0], [-28, 2, 0, 22, 0, 22, -4, 0, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, -10, 8, 8, -2, 0, 4], [0, 0, 12, -10, -11, 10, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-40, 18, 0, 36, 0, 36, -2, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, -1, 0, -10, 10, 0, -2, 0], [0, 0, -8, 42, -5, -42, 0, -4, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -46, 0, 2, -13, 0, -16, 16, 0, 2, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, -10, 3, 3, 4, 0, -1], [0, 0, 14, -25, 6, 25, 0, -6, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 14, -13, 17, 13, 0, -3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 2, -1, -1, 4, 0, -4], [0, 0, 0, 29, 10, -29, 0, -5, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -36, 0, 0, 21, 0, 12, -12, 0, -2, 0], [-4, -26, 0, 12, 0, 12, 10, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 14, 35, 10, -35, 0, -2, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30, 0, 0, -6, -4, -4, 0, 0, -8], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, -13, -18, 0, 12, -12, 0, 3, 0], [0, 0, -28, -12, 9, 12, 0, 8, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 16, 3, 3, 2, 0, -6], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -55, 0, 19, 0, 0, -12, 12, 0, 11, 0], [100, -24, 0, 3, 0, 3, -6, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 10, 42, -16, -42, 0, -8, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-185, 7, 0, 29, 0, 29, 4, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-30, -8, 0, 26, 0, 26, -14, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 0, 10, -2, -2, 2, 0, 6], [82, -4, 0, -14, 0, -14, -14, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, -24, -20, -20, 6, 0, 2], [0, 0, 22, -19, -24, 19, 0, 14, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, -20, 2, 2, -4, 0, 6], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -43, 0, -47, 42, 0, 12, -12, 0, -3, 0], [2, 18, 0, 15, 0, 15, 28, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 4, -57, -4, 57, 0, 3, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [38, -21, 0, 39, 0, 39, -12, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, 79, 16, 0, 4, -4, 0, -19, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 36, 22, 0, 28, -28, 0, 4, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 20, -4, -4, 10, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, -11, -2, 0, -8, 8, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, 11, -16, -16, -11, 0, 4], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -28, 0, 0, 14, -2, -2, 10, 0, -6], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -66, 0, 30, -9, 0, 6, -6, 0, 14, 0], [-14, 38, 0, -45, 0, -45, -14, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-126, 14, 0, -15, 0, -15, -24, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, -54, -3, 0, 0, 0, 0, 24, 0], [-226, 5, 0, -3, 0, -3, -4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 0, 40, 7, 0, -14, 14, 0, -14, 0], [0, 0, 44, 22, 7, -22, 0, 20, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 74, 31, 0, 16, -16, 0, -2, 0], [74, -32, 0, 48, 0, 48, 2, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, -7, -20, -20, 19, 0, -8], [0, 0, -10, 5, -6, -5, 0, -36, 0, -20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -49, 0, 6, 46, 0, 19, -19, 0, 0, 0], [0, 0, 12, -48, -17, 48, 0, -14, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, -14, -15, -15, -4, 0, 13], [216, -6, 0, -52, 0, -52, -18, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -73, 0, -27, 16, 0, -2, 2, 0, 14, 0], [0, 0, 20, -38, 11, 38, 0, -2, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 4, 78, -2, -78, 0, 16, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, -48, -21, -21, 18, 0, 4], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, -24, 4, 4, 0, 0, 11], [83, -17, 0, -32, 0, -32, 22, 0, -32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, -44, -20, 0, 16, -16, 0, -4, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 33, 26, 0, 20, -20, 0, -13, 0], [0, 0, -18, 21, 33, -21, 0, -21, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -63, 0, 0, 15, -12, -12, -9, 0, -2], [12, 34, 0, -67, 0, -67, -26, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -8, -31, -4, 31, 0, -5, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -8, -94, 13, 94, 0, -4, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -25, 0, 16, 54, 0, 15, -15, 0, 6, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 42, 25, 25, -12, 0, 6], [242, 9, 0, 41, 0, 41, 14, 0, -45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [22, 14, 0, 51, 0, 51, 28, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, -24, -34, -34, -12, 0, -1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -141, 0, -33, -30, 0, -12, 12, 0, 13, 0], [0, 0, 52, 56, 19, -56, 0, 2, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 40, 36, 36, 26, 0, -2], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, -27, 16, 0, -20, 20, 0, -2, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -57, 0, 0, 0, -16, -16, 24, 0, 1], [0, 0, 10, 38, -20, -38, 0, -24, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-312, -18, 0, 16, 0, 16, 24, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [104, -16, 0, 74, 0, 74, 12, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 16, -10, 11, 10, 0, 37, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -202, 0, -80, -9, 0, 0, 0, 0, -32, 0], [0, 0, -52, -37, -16, 37, 0, 12, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-266, 0, 0, 90, 0, 90, -28, 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71, 0, 0, -59, -6, -6, 11, 0, -4], [268, 40, 0, -120, 0, -120, 16, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -129, 0, 39, -18, 0, 12, -12, 0, 17, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -190, 0, 16, -21, 0, 48, -48, 0, 16, 0], [320, -36, 0, 3, 0, 3, 16, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, -18, -13, -13, 24, 0, -18], [0, 0, 4, -118, 13, 118, 0, -12, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -44, -7, 32, 7, 0, -7, 0, -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, 12, 23, 23, -54, 0, 14], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -81, 0, -91, 40, 0, 1, -1, 0, -13, 0], [0, 0, -40, 0, 37, 0, 0, 14, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [314, -48, 0, -129, 0, -129, -38, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 2, -68, 0, -59, 59, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32, 0, 180, -7, 0, 20, -20, 0, -16, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 96, -14, 0, -5, 5, 0, 6, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -99, 0, 0, -42, -19, -19, 48, 0, 5], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, -50, 14, 14, -10, 0, 12], [229, 7, 0, 91, 0, 91, 6, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -96, 12, 19, -12, 0, 30, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [514, -43, 0, 115, 0, 115, -24, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -119, 0, -98, 10, 0, -20, 20, 0, -2, 0], [0, 0, 48, 7, -12, -7, 0, 5, 0, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -257, 0, -11, -44, 0, -32, 32, 0, 22, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -16, 0, 0, -28, -5, -5, -26, 0, 24], [0, 0, -26, -43, 10, 43, 0, 20, 0, -28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -117, 0, -13, -26, 0, -32, 32, 0, -7, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -168, 0, 0, 24, -4, -4, -24, 0, -4], [0, 0, -32, 106, -27, -106, 0, 30, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_880_n_Hecke( : Kf := Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_880_3_n_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
function MakeNewformModFrm_880_3_n_a(:prec:=20)
    chi := MakeCharacter_880_n();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 3));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(997) - 1;
    while true do
        trunc_vec := Vector(Kf, [0] cat [f_vec[i]: i in [1..prec]]);
        B := Basis(S, prec + 1);
        S_basismat := Matrix([AbsEltseq(g): g in B]);
        if Rank(S_basismat) eq Min(NumberOfRows(S_basismat), NumberOfColumns(S_basismat)) then
            S_basismat := ChangeRing(S_basismat,Kf);
            f_lincom := Solution(S_basismat,trunc_vec);
            f := &+[f_lincom[i]*Basis(S)[i] : i in [1..#Basis(S)]];
            return f;
        end if;
        error if prec eq maxprec, "Unable to distinguish newform within newspace";
        prec := Min(Ceiling(1.25 * prec), maxprec);
    end while;
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_880_3_n_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function MakeNewformModSym_880_3_n_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_880_n();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,3,sign)));
    Vf := Kernel([<3,R![-4400, 0, 10736, 0, -5465, 0, 943, 0, -55, 0, 1]>],Snew);
    return Vf;
end function;