Efficient Calculation of Determinants of Symbolic Matrices with Many Variables Ziv Scully Second Annual MIT PRIMES Conference May 20, 2012 Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 1 / 12 Background Vectors and Volumes Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 2 / 12 Background Vectors and Volumes Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 2 / 12 Background Vectors and Volumes Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 2 / 12 Background Vectors and Volumes Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 2 / 12 Background Vectors and Volumes Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 2 / 12 Background Determinants 2 × 2 matrices: Ziv Scully (MIT PRIMES) � a b det c d � = ad − bc Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: Ziv Scully (MIT PRIMES) � a b det c d � = ad − bc Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: Ziv Scully (MIT PRIMES) � a b det c d � = ad − bc Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 3 / 12 Background Determinants 2 × 2 matrices: � a b det c d � = ad − bc 3 × 3 matrices: a b c det d e f = aei + bf g + cdh − af h − bdi − ceg g h i n × n matrices: det (A) = �� σ∈Sn Ziv Scully (MIT PRIMES) sgn(σ) n � Ai,σ(i) i=1 Determinants with Many Variables � May 20, 2012 3 / 12 Background Motivation Linear systems. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 4 / 12 Background Motivation Linear systems. Calculus. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 4 / 12 Background Motivation Linear systems. Calculus. Control theory. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 4 / 12 Background Motivation Linear systems. Calculus. Control theory. Engineering models. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 4 / 12 Background Motivation Linear systems. Calculus. Control theory. Engineering models. Code generation. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 4 / 12 Background Motivation Linear systems. Calculus. Control theory. Engineering models. Code generation. We are interested in matrices with polynomial entries. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 4 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n af kp − af lo − agjp + agln + ahjo − ahkn c d − bekp + belo + bgip − bglm − bhio + bhkm g h = k l + cejp − celn − cf ip + cf lm + chin − chjm o p − dejo + dekn + df io − df km − dgin + dgjm Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f kp − f lo − gjp + gln + hjo − hkn) c d − b(ekp − elo − gip + glm + hio − hkm) g h = k l + c(ejp − eln − f ip + f lm + hin − hjm) o p − d(ejo − ekn − f io + f km + gin − gjm) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f kp − f lo − gjp + gln + hjo − hkn) c d − b(ekp − elo − gip + glm + hio − hkm) g h = k l + c(ejp − eln − f ip + f lm + hin − hjm) o p − d(ejo − ekn − f io + f km + gin − gjm) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f kp − f lo − gjp + gln + hjo − hkn) c d − b(ekp − elo − gip + glm + hio − hkm) g h = k l + c(ejp − eln − f ip + f lm + hin − hjm) o p − d(ejo − ekn − f io + f km + gin − gjm) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f kp − f lo − gjp + gln + hjo − hkn) c d − b(ekp − elo − gip + glm + hio − hkm) g h = k l + c(ejp − eln − f ip + f lm + hin − hjm) o p − d(ejo − ekn − f io + f km + gin − gjm) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f kp − f lo − gjp + gln + hjo − hkn) c d − b(ekp − elo − gip + glm + hio − hkm) g h = k l + c(ejp − eln − f ip + f lm + hin − hjm) o p − d(ejo − ekn − f io + f km + gin − gjm) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f kp − f lo − gjp + gln + hjo − hkn) c d − b(ekp − elo − gip + glm + hio − hkm) g h = k l + c(ejp − eln − f ip + f lm + hin − hjm) o p − d(ejo − ekn − f io + f km + gin − gjm) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Minor Expansion Naive calculation requires Θ(n! n) polynomial multiplications. a e det i m b f j n a(f (kp − lo) − g(jp − ln) + h(jo − kn)) c d − b(e(kp − lo) − g(ip − lm) + h(io − km)) g h = k l + c(e(jp − ln) − f (ip − lm) + h(in − jm)) o p − d(e(jo − kn) − f (io − km) + g(in − jm)) n � � � n Minor expansion requires i ∈ Θ(2n n) polynomial multiplications. i i=2 Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 5 / 12 Algorithms Gaussian Elimination a 0 det 0 0 Ziv Scully (MIT PRIMES) b c d f g h = af kp 0 k l 0 0 p Determinants with Many Variables May 20, 2012 6 / 12 Algorithms Gaussian Elimination a 0 det 0 0 Ziv Scully (MIT PRIMES) b c d f g h = af kp 0 k l 0 0 p Determinants with Many Variables May 20, 2012 6 / 12 Algorithms Gaussian Elimination a b c ... det e f g . . . = .. .. .. . . . . . . Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 6 / 12 Algorithms Gaussian Elimination a b c ... a b c ... e e e det e f g . . . = det e − a a f − a b g − a c . . . .. .. .. .. .. .. . . .. . . . . . . . . Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 6 / 12 Algorithms Gaussian Elimination a b c ... det e f g . . . = det .. .. .. . . . . . . Ziv Scully (MIT PRIMES) a 0 .. . b c ... f − ae b g − ae c . . . .. .. .. . . . Determinants with Many Variables May 20, 2012 6 / 12 Algorithms Gaussian Elimination a b c ... det e f g . . . = det .. .. .. . . . . . . a 0 .. . b c ... f − ae b g − ae c . . . .. .. .. . . . A(1) = A, (k) (k+1) Ai,j = (k) Ai,j Ziv Scully (MIT PRIMES) − Ai,k (k) Ak,k (k) Ak,j Determinants with Many Variables May 20, 2012 6 / 12 Algorithms Gaussian Elimination a b c ... det e f g . . . = det .. .. .. . . . . . . a 0 .. . A(1) = A, A(1) = A, b c ... f − ae b g − ae c . . . .. .. .. . . . (k) (k+1) Ai,j = (k) Ai,j Ziv Scully (MIT PRIMES) − Ai,k (k) (k) A (k) k,j Ak,k (k+1) Ai,j = Determinants with Many Variables (0) A0,0 = 1, (k) (k) (k) Ai,j Ak,k − Ai,k Ak,j (k−1) Ak−1,k−1 May 20, 2012 6 / 12 Algorithms Gaussian Elimination a b c ... det e f g . . . = det .. .. .. . . . . . . a 0 .. . A(1) = A, A(1) = A, b c ... f − ae b g − ae c . . . .. .. .. . . . (k) (k+1) Ai,j = (k) Ai,j − Ai,k (k) (k) A (k) k,j Ak,k (k+1) Ai,j Fraction-free Gaussian elimination requires multiplications and divisions. Ziv Scully (MIT PRIMES) = n � i=1 (0) A0,0 = 1, (k) (k) (k) Ai,j Ak,k − Ai,k Ak,j (k−1) Ak−1,k−1 Θ(i2 ) ∈ Θ(n3 ) polynomial Determinants with Many Variables May 20, 2012 6 / 12 Algorithms Comparison Preservation of “simple” polynomials (e.g., those with few terms): Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 7 / 12 Algorithms Comparison Preservation of “simple” polynomials (e.g., those with few terms): Minor expansion: Entries are preserved. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 7 / 12 Algorithms Comparison Preservation of “simple” polynomials (e.g., those with few terms): Minor expansion: Entries are preserved. Gaussian elimination: Entries made more complicated each step. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 7 / 12 Algorithms Comparison Preservation of “simple” polynomials (e.g., those with few terms): Minor expansion: Entries are preserved. Gaussian elimination: Entries made more complicated each step. � Consider an n × n matrix with entries of the form si=1 ai xi : Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 7 / 12 Algorithms Comparison Preservation of “simple” polynomials (e.g., those with few terms): Minor expansion: Entries are preserved. Gaussian elimination: Entries made more complicated each step. � Consider an n × n matrix with entries of the form si=1 ai xi : cost of ME cost of FFGE cost ratio = Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 7 / 12 Algorithms Row Permutation Let p, q and r be polynomials with a, b and c terms, respectively, with no variables in common. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 8 / 12 Algorithms Row Permutation Let p, q and r be polynomials with a, b and c terms, respectively, with no variables in common. (pq)r requires ab + abc integer multiplications. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 8 / 12 Algorithms Row Permutation Let p, q and r be polynomials with a, b and c terms, respectively, with no variables in common. (pq)r requires ab + abc integer multiplications. (pr)q requires ac + abc integer multiplications. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 8 / 12 Algorithms Row Permutation Let p, q and r be polynomials with a, b and c terms, respectively, with no variables in common. (pq)r requires ab + abc integer multiplications. (pr)q requires ac + abc integer multiplications. (qr)p requires bc + abc integer multiplications. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 8 / 12 Algorithms Row Permutation Let p, q and r be polynomials with a, b and c terms, respectively, with no variables in common. (pq)r requires ab + abc integer multiplications. (pr)q requires ac + abc integer multiplications. (qr)p requires bc + abc integer multiplications. We want to defer multiplying by polynomials with many terms. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 8 / 12 Algorithms Row Permutation Let p, q and r be polynomials with a, b and c terms, respectively, with no variables in common. (pq)r requires ab + abc integer multiplications. (pr)q requires ac + abc integer multiplications. (qr)p requires bc + abc integer multiplications. We want to defer multiplying by polynomials with many terms. Absolute value of determinant is invariant under row swaps. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 8 / 12 Empirical Results Experiment Setup Random polynomial matrices: Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. For various values of p: an entry is 0 with probability p and has between one and four terms otherwise. (Any number is equally likely.) Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. For various values of p: an entry is 0 with probability p and has between one and four terms otherwise. (Any number is equally likely.) Each term is constant or linear in each variable. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. For various values of p: an entry is 0 with probability p and has between one and four terms otherwise. (Any number is equally likely.) Each term is constant or linear in each variable. Sort rows r in ascending order based on these scores: Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. For various values of p: an entry is 0 with probability p and has between one and four terms otherwise. (Any number is equally likely.) Each term is constant or linear in each variable. Sort rows r in ascending order based on these scores: Control, no sorting. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. For various values of p: an entry is 0 with probability p and has between one and four terms otherwise. (Any number is equally likely.) Each term is constant or linear in each variable. Sort rows r in ascending order based on these scores: Control, no sorting. Number of nonzero entries in a row, Ziv Scully (MIT PRIMES) �n i=1 (ri Determinants with Many Variables �= 0). May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. For various values of p: an entry is 0 with probability p and has between one and four terms otherwise. (Any number is equally likely.) Each term is constant or linear in each variable. Sort rows r in ascending order based on these scores: Control, no sorting. � Number of nonzero entries in a row, ni=1 (ri �= 0). � Total number of terms in a row, ni=1 nterms(ri ). Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Experiment Setup Random polynomial matrices: 9 × 9. 5 variables. For various values of p: an entry is 0 with probability p and has between one and four terms otherwise. (Any number is equally likely.) Each term is constant or linear in each variable. Sort rows r in ascending order based on these scores: Control, no sorting. � Number of nonzero entries in a row, ni=1 (ri �= 0). � Total number of terms in a row, ni=1 nterms(ri ). Product of one more than number of terms for each entry of a row, �n (nterms(r i ) + 1). i=1 Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 9 / 12 Empirical Results Data Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 10 / 12 Empirical Results Data Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 10 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Investigate specific types of matrices: Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Investigate specific types of matrices: Bézout matrices. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Investigate specific types of matrices: Bézout matrices. Do more experiments! Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Investigate specific types of matrices: Bézout matrices. Do more experiments! Vary other criteria. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Investigate specific types of matrices: Bézout matrices. Do more experiments! Vary other criteria. Different algorithms and variations. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Investigate specific types of matrices: Bézout matrices. Do more experiments! Vary other criteria. Different algorithms and variations. Crossover points between algorithms. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Further Questions Define “complexity” of matrix entries: Number of terms. Variables present. Context of a row. Investigate specific types of matrices: Bézout matrices. Do more experiments! Vary other criteria. Different algorithms and variations. Crossover points between algorithms. Machine learning. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 11 / 12 Conclusion Acknowledgments Dr. Tanya Khovanova, MIT, for mentoring me. Dr. Stefan Wehmeier, MathWorks, for suggesting the project and introducing me to the field. Dr. Ben Hinkle, MathWorks, for arranging software license and an international conference call. MIT PRIMES, for giving me this unique research opportunity. The MathWorks, Inc., for providing software and supporting the research. Ziv Scully (MIT PRIMES) Determinants with Many Variables May 20, 2012 12 / 12