Difference between revisions of "ApCoCoA-1:Weyl.WMul"
From ApCoCoAWiki
m (insert version info) |
|||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | <command> | + | {{Version|1}} |
− | <title>Weyl. | + | <command> |
− | <short_description>Computes the | + | <title>Weyl.WMul</title> |
− | + | <short_description>Computes the product <tt>F*G</tt> of Weyl polynomial <tt>F</tt> and <tt>G</tt> in normal form.</short_description> | |
<syntax> | <syntax> | ||
− | Weyl. | + | Weyl.WMul(F:POLY,G:POLY):POLY |
</syntax> | </syntax> | ||
<description> | <description> | ||
− | + | This method multiplies two Weyl polynomials <tt>F</tt> and <tt>G</tt> and returns <tt>F*G</tt> as a Weyl polynomial in normal form. | |
− | + | <itemize> | |
+ | <item>@param <em>F</em> A Weyl polynomial.</item> | ||
+ | <item>@param <em>G</em> A Weyl polynomial.</item> | ||
+ | <item>@return The product <tt>F*G</tt> in normal form.</item> | ||
+ | </itemize> | ||
<example> | <example> | ||
− | A1::=QQ[x,d]; --Define | + | A1::=QQ[x,d]; -- Define appropriate ring |
Use A1; | Use A1; | ||
− | + | F:=x; G:=d; | |
− | Weyl. | + | Weyl.WMul(F,G); |
− | + | xd | |
------------------------------- | ------------------------------- | ||
− | + | Weyl.WeylMul(G,F); | |
+ | xd + 1 | ||
------------------------------- | ------------------------------- | ||
− | + | Weyl.WMul(Weyl.WMul(G,F)-2G,F^3+G); | |
− | + | x^4d - 2x^3d + 4x^3 + xd^2 - 6x^2 - 2d^2 + d | |
− | + | ------------------------------- | |
− | + | -- If you want to multiply Weyl polynomials that are not in normal form say for example F=d^2x^3-2dx^2+7 and G=2d^3x-5xd+3, then | |
− | Weyl. | + | -- first convert them into normal form before multiplication. |
− | -- | + | ------------------------------- |
+ | F:=Weyl.WNormalForm([[d^2,x^3],[-2d,x^2],[7]]); | ||
+ | F; | ||
+ | x^3d^2 + 4x^2d + 2x + 7 | ||
+ | ------------------------------- | ||
+ | G:=Weyl.WNormalForm([[2d^3,x],[-5x,d],[3]]); | ||
+ | G; | ||
+ | 2xd^3 - 5xd + 6d^2 + 3 | ||
+ | ------------------------------- | ||
+ | Weyl.WMul(F,G); | ||
+ | 2x^4d^5 - 5x^4d^3 + 18x^3d^4 - 27x^3d^2 + 36x^2d^3 + 14xd^3 - 18x^2d + 12xd^2 - 35xd + 42d^2 + 6x + 21 | ||
+ | ------------------------------- | ||
+ | Weyl.WMul(G,F); | ||
+ | 2x^4d^5 - 5x^4d^3 + 32x^3d^4 - 32x^3d^2 + 148x^2d^3 + 14xd^3 - 38x^2d + 216xd^2 - 35xd + 42d^2 - 4x + 72d + 21 | ||
------------------------------- | ------------------------------- | ||
− | [ | + | Weyl.WMul(Weyl.WNormalForm([[d^2,x^3],[-2d,x^2],[7]]),Weyl.WNormalForm([[2d^3,x],[-5x,d],[3]])); |
+ | 2x^4d^5 - 5x^4d^3 + 18x^3d^4 - 27x^3d^2 + 36x^2d^3 + 14xd^3 - 18x^2d + 12xd^2 - 35xd + 42d^2 + 6x + 21 | ||
------------------------------- | ------------------------------- | ||
+ | |||
</example> | </example> | ||
<example> | <example> | ||
− | + | A2::=ZZ/(101)[x[1..2],y[1..2]]; | |
− | Use | + | Use A2; |
− | + | Weyl.WMul(x[1]^11,y[1]^11); | |
− | + | x[1]^11y[1]^11 | |
− | |||
------------------------------- | ------------------------------- | ||
− | [x[1]^7 | + | Weyl.WMul(y[1]^11,x[1]^11); |
+ | x[1]^11y[1]^11 + 20x[1]^10y[1]^10 - 10x[1]^9y[1]^9 + 33x[1]^8y[1]^8 + 23x[1]^7y[1]^7 - 17x[1]^6y[1]^6 - x[1]^5y[1]^5 - | ||
+ | 18x[1]^4y[1]^4 - 36x[1]^3y[1]^3 - 36x[1]^2y[1]^2 + 26x[1]y[1] - 16 | ||
+ | |||
------------------------------- | ------------------------------- | ||
+ | Weyl.WMul(y[1]^21,x[1]^21); | ||
+ | x[1]^21y[1]^21 + 37x[1]^20y[1]^20 + 27x[1]^19y[1]^19 + 17x[1]^18y[1]^18 - 37x[1]^17y[1]^17 + 43x[1]^16y[1]^16 - 17x[1]^15y[1]^15 - | ||
+ | 27x[1]^14y[1]^14 - 5x[1]^13y[1]^13 - 49x[1]^12y[1]^12 - 39x[1]^11y[1]^11 - 25x[1]^10y[1]^10 - 40x[1]^9y[1]^9 + 46x[1]^8y[1]^8 - | ||
+ | 35x[1]^7y[1]^7 - 47x[1]^6y[1]^6 - 30x[1]^5y[1]^5 + 45x[1]^4y[1]^4 + 40x[1]^3y[1]^3 + 3x[1]^2y[1]^2 + 41x[1]y[1] + 26 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
------------------------------- | ------------------------------- | ||
+ | --this computation is too slow with Weyl.WeylMul(F,G) | ||
</example> | </example> | ||
</description> | </description> | ||
<seealso> | <seealso> | ||
− | <see>Weyl.WNormalForm</see> | + | <see>ApCoCoA-1:Weyl.WNormalForm|Weyl.WNormalForm</see> |
</seealso> | </seealso> | ||
<types> | <types> | ||
− | <type> | + | <type>polynomial</type> |
</types> | </types> | ||
− | <key>weyl. | + | <key>weyl.wmul</key> |
− | <wiki-category> | + | <key>wmul</key> |
+ | <wiki-category>ApCoCoA-1:Package_weyl</wiki-category> | ||
</command> | </command> |
Latest revision as of 10:38, 7 October 2020
This article is about a function from ApCoCoA-1. |
Weyl.WMul
Computes the product F*G of Weyl polynomial F and G in normal form.
Syntax
Weyl.WMul(F:POLY,G:POLY):POLY
Description
This method multiplies two Weyl polynomials F and G and returns F*G as a Weyl polynomial in normal form.
@param F A Weyl polynomial.
@param G A Weyl polynomial.
@return The product F*G in normal form.
Example
A1::=QQ[x,d]; -- Define appropriate ring Use A1; F:=x; G:=d; Weyl.WMul(F,G); xd ------------------------------- Weyl.WeylMul(G,F); xd + 1 ------------------------------- Weyl.WMul(Weyl.WMul(G,F)-2G,F^3+G); x^4d - 2x^3d + 4x^3 + xd^2 - 6x^2 - 2d^2 + d ------------------------------- -- If you want to multiply Weyl polynomials that are not in normal form say for example F=d^2x^3-2dx^2+7 and G=2d^3x-5xd+3, then -- first convert them into normal form before multiplication. ------------------------------- F:=Weyl.WNormalForm([[d^2,x^3],[-2d,x^2],[7]]); F; x^3d^2 + 4x^2d + 2x + 7 ------------------------------- G:=Weyl.WNormalForm([[2d^3,x],[-5x,d],[3]]); G; 2xd^3 - 5xd + 6d^2 + 3 ------------------------------- Weyl.WMul(F,G); 2x^4d^5 - 5x^4d^3 + 18x^3d^4 - 27x^3d^2 + 36x^2d^3 + 14xd^3 - 18x^2d + 12xd^2 - 35xd + 42d^2 + 6x + 21 ------------------------------- Weyl.WMul(G,F); 2x^4d^5 - 5x^4d^3 + 32x^3d^4 - 32x^3d^2 + 148x^2d^3 + 14xd^3 - 38x^2d + 216xd^2 - 35xd + 42d^2 - 4x + 72d + 21 ------------------------------- Weyl.WMul(Weyl.WNormalForm([[d^2,x^3],[-2d,x^2],[7]]),Weyl.WNormalForm([[2d^3,x],[-5x,d],[3]])); 2x^4d^5 - 5x^4d^3 + 18x^3d^4 - 27x^3d^2 + 36x^2d^3 + 14xd^3 - 18x^2d + 12xd^2 - 35xd + 42d^2 + 6x + 21 -------------------------------
Example
A2::=ZZ/(101)[x[1..2],y[1..2]]; Use A2; Weyl.WMul(x[1]^11,y[1]^11); x[1]^11y[1]^11 ------------------------------- Weyl.WMul(y[1]^11,x[1]^11); x[1]^11y[1]^11 + 20x[1]^10y[1]^10 - 10x[1]^9y[1]^9 + 33x[1]^8y[1]^8 + 23x[1]^7y[1]^7 - 17x[1]^6y[1]^6 - x[1]^5y[1]^5 - 18x[1]^4y[1]^4 - 36x[1]^3y[1]^3 - 36x[1]^2y[1]^2 + 26x[1]y[1] - 16 ------------------------------- Weyl.WMul(y[1]^21,x[1]^21); x[1]^21y[1]^21 + 37x[1]^20y[1]^20 + 27x[1]^19y[1]^19 + 17x[1]^18y[1]^18 - 37x[1]^17y[1]^17 + 43x[1]^16y[1]^16 - 17x[1]^15y[1]^15 - 27x[1]^14y[1]^14 - 5x[1]^13y[1]^13 - 49x[1]^12y[1]^12 - 39x[1]^11y[1]^11 - 25x[1]^10y[1]^10 - 40x[1]^9y[1]^9 + 46x[1]^8y[1]^8 - 35x[1]^7y[1]^7 - 47x[1]^6y[1]^6 - 30x[1]^5y[1]^5 + 45x[1]^4y[1]^4 + 40x[1]^3y[1]^3 + 3x[1]^2y[1]^2 + 41x[1]y[1] + 26 ------------------------------- --this computation is too slow with Weyl.WeylMul(F,G)
See also