Ejemplo n.º 1
0
        public static Shiki operator+(Kou k1, Kou k2)
        {
            Shiki shiki = new Shiki();

            shiki.AddKou(k1.Clone());
            shiki.AddKou(k2.Clone());

            return(shiki);
        }
Ejemplo n.º 2
0
        public static Shiki operator-(Shiki s1, Kou k2)
        {
            Shiki ret = new Shiki();

            foreach (Kou k1 in s1.list)
            {
                ret.AddKou(k1.Clone());
            }
            ret.AddKou((-1) * k2);
            return(ret);
        }
Ejemplo n.º 3
0
        public static Shiki operator+(Shiki s1, Shiki s2)
        {
            Shiki ret = new Shiki();

            foreach (Kou k1 in s1.list)
            {
                ret.AddKou(k1.Clone());
            }
            foreach (Kou k2 in s2.list)
            {
                ret.AddKou(k2.Clone());
            }
            return(ret);
        }
Ejemplo n.º 4
0
        public static Shiki operator*(int v, Shiki s)
        {
            Shiki ret = new Shiki();

            foreach (Kou k2 in s.list)
            {
                ret.AddKou(v * k2);
            }
            return(ret);
        }
Ejemplo n.º 5
0
        public static Shiki operator*(Kou k1, Shiki s2)
        {
            Shiki ret = new Shiki();

            foreach (Kou k2 in s2.list)
            {
                ret.AddKou(k1 * k2);
            }
            return(ret);
        }
Ejemplo n.º 6
0
        public void Henbi(Shiki shiki, int index)
        {
            if (index <= 0 || 6 < index)
            {
                throw new System.Exception("そんな偏微分には対応していないよ");
            }

            Kou ret = this.Clone();

            ret.keisu *= ret.inshi[index]--;
            shiki.AddKou(ret);

            if (index > 3 || this.inshi[0] == 0)
            {
                return;
            }

            ret           = this.Clone();
            ret.keisu    *= -ret.inshi[0];
            ret.inshi[0] += 2;
            ret.inshi[index]++;
            shiki.AddKou(ret);
        }