Ejemplo n.º 1
0
    public static Algebraic[] reduce_exp(Algebraic[] p)
    {
        var v    = new ArrayList();
        var vars = new ArrayList();

        var g = new GetExpVars2(v);

        foreach (var t in p)
        {
            g.SymEval(t);
        }

        foreach (var t in v)
        {
            var a = ( Algebraic )t;

            Variable x = null;

            if (a is Polynomial)
            {
                x = (( Polynomial )a)._v;
            }
            else
            {
                continue;
            }

            if (vars.Contains(x))
            {
                continue;
            }
            else
            {
                vars.Add(x);
            }

            var gcd = exp_gcd(v, x);

            if (gcd != Symbolic.ZERO && gcd != Symbolic.ONE)
            {
                var sb = new SubstExp(gcd, x);

                for (int k = 0; k < p.Length; k++)
                {
                    p[k] = sb.SymEval(p[k]);
                }
            }
        }

        return(p);
    }
Ejemplo n.º 2
0
    public static Algebraic[] reduce_exp(Algebraic[] p)
    {
        ArrayList   v    = new ArrayList();
        ArrayList   vars = new ArrayList();
        GetExpVars2 g    = new GetExpVars2(v);

        for (int i = 0; i < p.Length; i++)
        {
            g.f_exakt(p[i]);
        }
        for (int i = 0; i < v.Count; i++)
        {
            Algebraic a = (Algebraic)v[i];
            Variable  x = null;
            if (a is Polynomial)
            {
                x = ((Polynomial)a).v;
            }
            else
            {
                continue;
            }
            if (vars.Contains(x))
            {
                continue;
            }
            else
            {
                vars.Add(x);
            }
            Zahl gcd = exp_gcd(v, x);
            if (!gcd.Equals(Zahl.ZERO) && !gcd.Equals(Zahl.ONE))
            {
                SubstExp sb = new SubstExp(gcd, x);
                for (int k = 0; k < p.Length; k++)
                {
                    p[k] = sb.f_exakt(p[k]);
                }
            }
        }
        return(p);
    }