
// Make newform 4003.2.a.c in Magma, downloaded from the LMFDB on 25 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_4003_a();"
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4003_2_a_c();".
// 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".
// To make the character of type GrpDrchElt, type "MakeCharacter_4003_a();"
function MakeCharacter_4003_a()
    N := 4003;
    order := 1;
    char_gens := [2];
    v := [1];
    // 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;

function MakeCharacter_4003_a_Hecke(Kf)
    return MakeCharacter_4003_a();
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_4003_2_a_c();".
// 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_4003_2_a_c( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_4003_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<2,R![1036174009425920, 58942335676858368, 947149400832808960, -3275642324066372608, -218451029402447341056, -1021929467031524758016, 19792261178842727396608, 173253607087819662933888, -964386403235639052436032, -13426032421460636235689552, 25887080361193249175582352, 665584125972697296550223900, -223863434867405405265831346, -23740456997368293317560416590, -10901918145411247483124366794, 648390361426054491738350600697, 543022708288906925172836939497, -14085003739476701901832500942048, -13540464125352709654470479038537, 249381272687209570786555776589375, 230252166514747771366026732294952, -3657518837020702578858430554579295, -2876630207387149649270514455194080, 44940739344581691045994586128162194, 26786735650440127992753708762336048, -466654025273257695335878895292093063, -178526890089697587271131514955799059, 4125289073380084716154796563905304134, 680247462452574446558088575514045365, -31256640363888545456800593245853220946, 1467670585883441792313124437110973181, 204271993870461158919165090731087101407, -50857134725592221697950582060562733151, -1158355561497572584843520641313278220244, 510711562617613768127642758840887419912, 5731129938650287083341300170704036933264, -3580726068245433528432016963003803235370, -24864229546882141506668128988111828766225, 19994944983745787558278006791154375376368, 95005324872153498347219740836488427231200, -93457477390273141448353556258118843418026, -320881622113768434710838178447919782529177, 375223159773801765940024924255257868834417, 960669173003056040108926459645819118912186, -1315010090965706495584528083920995742479330, -2553706753559887424580782983649008427818245, 4067956721420204831746870964054986688897391, 6028912325333142015767273235616998167670281, -11200627339449073766554041344871704067262577, -12616786446916219075587065340580531522094553, 27628090043618499676032816674064137580933391, 23277800895500047437394283257874702784716427, -61373534841946705345886780686741801469536188, -37410570105475483605244755175234371917213678, 123313509034922805262240566433956735180770666, 50993162173984581440097643378273071186411714, -224907231248003731912041672932061839842236423, -55028380604727644890379539093947614656454274, 373478952946220735141271501797685483334074167, 35796006094827872061611417473153409622424770, -566087602914804483710259513313041320968360593, 21757223670318699249076086394018623098289551, 784764594345897610642869346354502684695975750, -127601076546378103308725144447696478503611334, -996605897557653262019983805287000223962492166, 279527666400743069442282320110836333394162340, 1160721769722415412804207260953428007664225504, -459277576535464447977680385989423010192321465, -1240592445925906543059507228063753599431677160, 635109569145365788756970327592163054192628598, 1216876334446849080451369403265253748326989813, -770955874281129459870858562564831559875340571, -1094646218184100275307577460404970285515305226, 838526823319092813375071175584733103963969129, 901475647101688883544968119859738122027551673, -826784468230478073573751612053452350162270227, -677412733160916943387643472995766589770156131, 744503680667781102615069098759615754896961270, 461772334593357235901133539374457221903498662, -615333524255337753274747779727254892775466062, -282560834578611891502253266073097476024948650, 468439079339622746094689861287978354270337856, 152099554371772250802092229179729658596875927, -329302664807310211598941611318607561646038601, -68867555361077127596060753598613422079897929, 214154163023125499948030625787557234948619402, 22957221377954756350751774953704907404320400, -129000529564865128038844811463684474569051815, -1929429063666884363451913563192498014364898, 72031811165785050332661853988997986784556533, -5094522026126197975638686337647593281183780, -37295899589282119740154958520189579322812755, 5689229875851931452899681116822852658848376, 17903271472929343971832041597480183243066027, -4172417217541247224185174711002049495552527, -7962231113650380578028096448845142271714397, 2507912539727435495451909202393123554288520, 3276216688596196916501500821214098761927044, -1315602457708784482254451748438745944051486, -1244381434853168839439750421184833727515664, 618659074334163155037460341436326570062016, 434710531013974780466245205731635603291770, -264416687166027212806536462257282105662994, -138866223556154037648725312575945974376200, 103532875877026652550858383235609900024678, 40176226168608168085950479972623437296636, -37317232521034407091672103227414989852601, -10347580206145384710006064214877327205585, 12418467747410484008561589729844511851304, 2290375329088918348193890877472224566639, -3822158145102102282726320307358073319721, -397467431527316280126252737320884602730, 1088921470158130958366505170399547190265, 34958816393550518513558807047149567962, -287195389414713600493648438879290955046, 9809586073619152563879114075467453292, 70081126096118794939761477651305356048, -6815535765270737206822999548255542972, -15801790852880583021554496945828029435, 2520665434744830005607158130829207136, 3285218211242998490240963732242124114, -734263040641155194104613910557014472, -627711233660866058006793766348900478, 183569329232705164021137858939131269, 109690313175739976811405424809678519, -40697347834761427944939873629197874, -17398733631508094972108920302028802, 8125286339487596188401352949240016, 2474396668710731215342249441240683, -1472497735335735259123481413093625, -308606859536470645984371447433427, 243195340145758762822827622647441, 32202271317385052408874852804339, -36664899447532128060743313294244, -2452091868336285696594439633599, 5045680049062761676324432241742, 44889111827079272068394738996, -632895284796973332552787309588, 28207824390104305816784572898, 72152202497942586181912613207, -6936803266933837408368991705, -7442578960423179923486534794, 1105572577705657986842658134, 689972215442468650574658621, -141639019754372534637900478, -56902108203107774542302887, 15467550025865486033054953, 4106006476428455710730186, -1472344096698282177902006, -251559006494663536721859, 123235320581324454882843, 12237041839243422907881, -9086657584754379850753, -376068024059687230259, 588643579859738464537, -4956438541727746411, -33280785777892902010, 1798635122538237531, 1623892235048183894, -160896213735836041, -67168918504109475, 9952149105035441, 2285412040747340, -479685251175129, -60329297314570, 18529575108006, 1055889141013, -572189146040, -3209924584, 13807011516, -511207375, -248202719, 19200803, 3010416, -378303, -18531, 4270, -35, -22, 1]>],Snew);
    return Vf;
end function;