# LRtriple -- uses Littlewood-Richardson homotopy algorithm to solve a Schubert problem

## Synopsis

• Usage:
LRtriple(n,M)
LRtriple(n,M, RandomSeed=>12345)
LRtriple(n,M, WorkingPrecision=>2)
• Inputs:
• n, an integer, the dimension of the ambient space of the Grassmannian $Gr(k,n)$.
• M, , whose rows encode the Schubert condition. Each row is a $k+1$-tuple, $\{m,b\}$, where $m$ is a nonegative integer and $b$ a bracket (see bracket2partition for details). The bracket $b$ represents a Schubert condition and $m$ is its multiplicity in this Schubert problem.
• Optional inputs:
• RandomSeed => ..., default value -1, option to set the seed of the random number generators.
• Verbose => ..., default value false, request verbose feedback
• WorkingPrecision => ..., default value 0, option to raise the working precision to double double or quad double.
• Outputs:
• , first a string with the generic flags, the moved flags, and the solution planes; then a string with the polynomial system solved; and thirdly a list of solutions.

## Description

LRtriple applies the Littlewood-Richardson homotopies to solve a generic instance of a Schubert problem defined by at least three Schubert conditions. The flags defining the instance are generated in the routine.

Use the method parseTriplet to parse the three strings f, p, and s into proper Macaulay2 polynomials, solution lists, and complex matrices.

The Schubert problem [2 4 6]^3 on $G(3,6)$ has two solutions. This example computes the solutions to an instance given by random flags.

 i1 : R := ZZ; n := 6; m := matrix{{3, 2, 4, 6}}; 1 4 o3 : Matrix ZZ <--- ZZ i4 : result := LRtriple(n,m); i5 : stdio << "the fixed flags :\n" << result_0; the fixed flags : -4.08248290463863E-01 0.00000000000000E+00 4.19824357830867E-01 -1.75738426537342E-01 3.02206278245358E-01 4.37212426820994E-04 3.86822308156198E-01 1.97318950905321E-03 -4.57828264187229E-01 2.24859366311168E-01 -1.60061140338755E-01 -3.15348390293294E-01 -1.15218326932633E-01 -3.91652146432918E-01 -2.28167133524980E-01 1.02380258056897E-01 -2.09045305814463E-01 -5.32354706826750E-01 2.61757219543589E-01 -3.49359260558513E-02 -2.00163690440742E-03 -3.42393203835880E-01 -5.00461975552965E-01 -7.90774243297675E-02 3.67432941463741E-01 1.77931729025403E-01 1.57700626330997E-01 -2.04891062521853E-01 -2.39432458489307E-01 6.25354454900266E-02 7.49144578143003E-01 1.92978496073427E-01 8.53506934836789E-02 -1.32044936159967E-01 1.23338426359106E-01 2.58560712015079E-01 -2.55704851270048E-01 3.18247852630037E-01 -4.74325154597708E-02 -5.36821691558645E-01 -7.08289597383892E-02 -1.58095271285767E-01 -1.96613720326634E-01 1.64153488956044E-03 -1.45780348216514E-01 -6.15595205002494E-01 2.53703074688174E-01 -9.82895662324678E-02 2.69079241969854E-01 -3.07022846393547E-01 7.09277850789479E-02 -3.38633848938088E-01 3.58645474734999E-01 4.67701026563062E-02 -2.19400701043435E-01 1.35007737598703E-01 -3.31928701769856E-01 -8.88405752880512E-02 -2.74708031372931E-01 5.68258840435710E-01 1.06073583499705E-01 3.94227169979693E-01 9.24416702980678E-03 5.03244731601954E-01 4.92905910917881E-01 -3.41394206074375E-01 1.21716663733793E-01 -2.49660961901640E-01 -1.60894815751514E-01 -2.31749883077598E-01 1.29058340945796E-01 2.17001452361922E-01 THE MOVED FLAG : 1 1 1 1 1 1 -1 -1 -1 -1 -1 0 1 1 1 1 0 0 -1 -1 -1 0 0 0 1 1 0 0 0 0 -1 0 0 0 0 0 THE 3-SOLUTION PLANES : -1.29110599515173E+00 9.18602438551441E-02 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 1.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 -8.84627575831895E-01 -1.13651082476222E-01 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 1.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 2.37440846248810E-01 -1.47842747531989E-01 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 1.00000000000000E+00 0.00000000000000E+00 -1.16334334085446E+00 -1.46196236583188E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 1.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 -1.87881869025255E+00 9.35080203288696E-01 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 1.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 -4.04165989662607E-01 -5.58239275762820E-01 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 0.00000000000000E+00 1.00000000000000E+00 0.00000000000000E+00 i6 : stdio << "polynomial system solved :\n" << result_1; polynomial system solved : 6 3 +( 1.54300524316191E-01 + 3.96602764533802E-01*i)*x11*x32*x53 +( 7.44192551598576E-03 + 6.52780549806019E-01*i)*x11*x32 +( 2.44330116668923E-01 + 6.11784424873713E-01*i)*x11*x53 +( 1.26596216214278E-02 + 9.68226093540667E-02*i)*x32*x53 +( 2.90321315312024E-01 + 8.12293424536301E-01*i)*x11 +( 1.19313782919732E-02 + 4.73026851077787E-01*i)*x32 +( 2.71060070354491E-01 + 5.20621397746880E-01*i)*x53 +( 4.08569611081529E-01 + 6.64920028873403E-01*i); +( 6.34649161957497E-01 + 3.99381487155777E-01*i)*x11*x32*x53 +( 1.83400698141464E-01 + 4.82274951203010E-01*i)*x11*x32 +(-3.17550066668303E-01 + 1.38519087061093E-01*i)*x11*x53 +( 5.20417286649867E-01 + 3.88332050027209E-01*i)*x32*x53 +(-1.09347382549928E-02 - 4.69500320896879E-02*i)*x11 +( 2.67979676523699E-01 + 4.83580432515270E-01*i)*x32 +(-3.35005590867683E-01 + 6.69800732981836E-02*i)*x53 +(-9.33796196266062E-02 - 1.07361523498944E-01*i); +(-1.07312181585668E-01 + 4.52600717277155E-01*i)*x11*x32*x53 +(-1.46585607029347E-01 + 3.05507522339115E-01*i)*x11*x32 +( 1.64122547367609E-01 + 5.06556040785654E-01*i)*x11*x53 +(-1.86978729734583E-01 - 2.03137684335519E-01*i)*x32*x53 +(-2.09274658383598E-01 + 2.82347904635004E-01*i)*x11 +(-2.01654923955182E-01 + 2.68327891757604E-01*i)*x32 +( 2.88939529328727E-02 + 1.46896563016921E-02*i)*x53 +(-2.20578763536198E-01 + 1.98441460223486E-01*i); +( 4.79928914240787E-01 - 1.74498615899100E-01*i)*x11*x32*x53 +( 1.25936156238649E-01 + 3.07340777763757E-01*i)*x11*x32 +( 4.47091254443292E-01 - 3.37494833019752E-01*i)*x11*x53 +( 6.49596227969347E-01 + 1.60059541458930E-01*i)*x32*x53 +( 1.53071653041123E-01 + 3.20914816187643E-01*i)*x11 +(-1.28295021018302E-01 + 4.04348869867597E-01*i)*x32 +( 6.38688027351871E-01 - 4.82563900610244E-02*i)*x53 +(-8.76682510870745E-02 + 3.85464853947002E-01*i); +( 2.58583630010391E-02 - 3.09035815196543E-01*i)*x11*x32*x53 +( 2.61079047183583E-01 - 2.85774206230439E-01*i)*x11*x32 +(-3.70442787428649E-03 - 1.77095813918412E-01*i)*x11*x53 +( 4.84492916176814E-01 - 3.70460106218232E-01*i)*x32*x53 +( 1.07114326880599E-01 - 3.80875051826916E-01*i)*x11 +( 6.46784543544236E-01 + 7.22891341342000E-02*i)*x32 +( 1.44142287728664E-01 - 5.54948706048803E-02*i)*x53 +( 3.94838123728221E-01 - 1.11216414519352E-01*i); +(-1.19615215928726E-01 + 4.26554536610471E-01*i)*x11*x32*x53 +( 5.34438569235008E-02 - 1.22875768628096E-01*i)*x11*x32 +( 2.18255361984510E-02 + 5.87970240229616E-01*i)*x11*x53 +(-3.60500934340527E-02 + 4.78624666279736E-01*i)*x32*x53 +(-5.56796000200570E-02 - 2.56151374100420E-01*i)*x11 +( 1.59574117274811E-01 + 2.53105824150114E-01*i)*x32 +(-1.25070298072749E-02 + 6.51741298537895E-01*i)*x53 +(-5.25663606416349E-03 + 3.85146674087227E-02*i); ROOT REFINING PARAMETERS 1. output during the iterations : no 2. deflate isolated singularities : yes 3. tolerance for error on the root : 1.000E-08 4. tolerance for the residual : 1.000E-08 5. tolerance for singular roots : 1.000E-08 6. maximum number of iterations : 3 i7 : stdio << "solutions :\n" << result_2; solutions : 2 3 =========================================================================== solution 1 : start residual : 1.762E-15 #iterations : 1 success t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x11 : -1.29110599515173E+00 9.18602438551432E-02 x32 : -8.84627575831895E-01 -1.13651082476223E-01 x53 : 2.37440846248810E-01 -1.47842747531989E-01 == err : 1.871E-16 = rco : 3.298E-01 = res : 1.388E-16 = complex regular == solution 2 : start residual : 6.189E-15 #iterations : 1 success t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x11 : -1.16334334085446E+00 -1.46196236583188E+00 x32 : -1.87881869025254E+00 9.35080203288696E-01 x53 : -4.04165989662607E-01 -5.58239275762820E-01 == err : 5.483E-16 = rco : 1.564E-01 = res : 6.661E-16 = complex regular == =========================================================================== A list of 2 solutions has been refined : Number of regular solutions : 2. Number of singular solutions : 0. Number of real solutions : 0. Number of complex solutions : 2. Number of clustered solutions : 0. Number of solutions at infinity : 0. Number of failures : 0. =========================================================================== Frequency tables for correction, residual, and condition numbers : FreqCorr : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 : 2 FreqResi : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 : 2 FreqCond : 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 : 2 Small correction terms and residuals counted to the right. Well conditioned and distinct roots counted to the left. THE SOLUTIONS : 2 3 =========================================================================== solution 1 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x11 : -1.29110599515173E+00 9.18602438551432E-02 x32 : -8.84627575831895E-01 -1.13651082476223E-01 x53 : 2.37440846248810E-01 -1.47842747531989E-01 == err : 1.871E-16 = rco : 3.298E-01 = res : 1.388E-16 == solution 2 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x11 : -1.16334334085446E+00 -1.46196236583188E+00 x32 : -1.87881869025254E+00 9.35080203288696E-01 x53 : -4.04165989662607E-01 -5.58239275762820E-01 == err : 5.483E-16 = rco : 1.564E-01 = res : 6.661E-16 == TIMING INFORMATION for Root refining The elapsed time in seconds was 0.000595000 = 0h 0m 0s 1ms User time in seconds was 0.000558000 = 0h 0m 0s 1ms System CPU time in seconds was 0.000037000 = 0h 0m 0s 0ms Non-I/O page faults was 23 I/O page faults was 0 Signals delivered was 0 Swaps was 0 Total context switches was 0 TIMING INFORMATION for resolving a Schubert problem The elapsed time in seconds was 0.012394000 = 0h 0m 0s 12ms User time in seconds was 0.012212000 = 0h 0m 0s 12ms System CPU time in seconds was 0.000182000 = 0h 0m 0s 0ms Non-I/O page faults was 176 I/O page faults was 0 Signals delivered was 0 Swaps was 0 Total context switches was 2 Seed used in random number generators : 40377. PHCv2.4.77 released 2020-06-12

## Ways to use LRtriple :

• "LRtriple(ZZ,Matrix)"

## For the programmer

The object LRtriple is .