Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LinZip interpolation constantly fails with some input in small characteristic #7

Open
PoslavskySV opened this issue Sep 5, 2017 · 0 comments

Comments

@PoslavskySV
Copy link
Owner

PoslavskySV commented Sep 5, 2017

LinZip makes too many loop cycles (system is UnderDetermied) with Vandermonde powers ((evaluationPoint) ^ (iTry)). The answer will not be even obtained if NUMBER_OF_UNDER_DETERMINED_RETRIES is too small (each evaluation (evaluationPoint) ^ (iTry) will give underdetermined system). Test case:

@Test
public void testSmallDomain2() throws Exception {
    lIntegersModulo domain = new lIntegersModulo(3);
    String[] vars = {"a", "b", "c", "d", "e"};

    lMultivariatePolynomialZp arr[] = {
            lMultivariatePolynomialZp.parse("1+2*c^3*d^2+2*b^3*c^3*d^3*e+a*c^3*d*e+2*a^2*b^3*c^2*d^2*e^3+a^2*b^3*c^3*e^2", domain, vars),
            lMultivariatePolynomialZp.parse("1+b^3*c^2*d^3*e^3+a*c^3*d*e^2+2*a^3*e^3+2*a^3*b^3*d*e^3+2*a^3*b^3*c*d^3*e", domain, vars),
            lMultivariatePolynomialZp.parse("1+2*a*b^3*c+a^2*d^3*e", domain, vars),
            lMultivariatePolynomialZp.parse("1+2*b^3*c^3*d^3*e+2*a*b^2*c*d^2*e^3+a*b^3*c^2*d*e^2+a^3*b^2*c^3*d^2", domain, vars),
    }, base = arr[0].createOne().multiply(arr);

    lMultivariatePolynomialZp a = base;
    lMultivariatePolynomialZp b = a.derivative(1);
    
    for (int i = 0; i < 1000; i++) {
        timestamp();
        lMultivariatePolynomialZp gcd = ModularGCDFiniteField(a, b);
        timeElapsed();

        assertTrue(dividesQ(a, gcd));
        assertTrue(dividesQ(b, gcd));
    }
}

Possible solution is not to use cyclic (Vandermonde) substitutions.

PoslavskySV added a commit that referenced this issue Sep 5, 2017
 - overcome the issue with LinZip #7
 - make switch between different x_n in `F[x_n][x_1, ..., x_(n-1)]` representation
@PoslavskySV PoslavskySV changed the title LinZip interpolation constantly fails with some input in small characteristics LinZip interpolation constantly fails with some input in small characteristic Oct 28, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant