public static Shiki operator+(Kou k1, Kou k2) { Shiki shiki = new Shiki(); shiki.AddKou(k1.Clone()); shiki.AddKou(k2.Clone()); return(shiki); }
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); }
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); }
public static Shiki operator*(int v, Shiki s) { Shiki ret = new Shiki(); foreach (Kou k2 in s.list) { ret.AddKou(v * k2); } return(ret); }
public static Shiki operator*(Kou k1, Shiki s2) { Shiki ret = new Shiki(); foreach (Kou k2 in s2.list) { ret.AddKou(k1 * k2); } return(ret); }
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); }