рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рджреЛрд╣рд░реА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдирд┐рд░реНрдгрдп рдХреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреИрд╕реЗ рдХрд░реЗрдВ

рд╡реНрдпрд╡рд╕рд╛рдп рдореЗрдВ рдХрд╛рд▓реНрдкрдирд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреБрд░рд╕реНрдХрд╛рд░ рджреЗ рдЪреБрдХреЗ рд╣реИрдВ ред рдЕрдм рджреЛрд╣рд░реЗ рд╕реЗ рдХреБрдЫ рд▓реЗрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред

рджреЛрд╣рд░реА рд╕рдВрдЦреНрдпрд╛ a + andb рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓) рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ, рдЬрд╣рд╛рдВ a рдФрд░ b рдореВрд▓ рдлрд╝реАрд▓реНрдб рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ ╬╡ ╬╡ = 0 ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдЬреАрдм рдирдВрдмрд░реЛрдВ рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИред



рджреЛрд╣рд░реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧреА рдЧреБрдг рд╣реИ

f (a + (b) = f (a) +'f '(a) b ред

рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ f (x) рдХрд╛ рд╕реВрддреНрд░ рд╣реИ, рддреЛ рд╡реНрдпреБрддреНрдкрдиреНрди f '(x) рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдПрдл (рдПрдХреНрд╕) рдХреЗрд╡рд▓ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реИрдЦрд┐рдХ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЪрд▓рд╛рдХрд░ рдЬрд┐рд╕рдореЗрдВ the рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдФрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред



рдЧрдгрд┐рдд рдХрд╛ рдПрдХ рд╕рд╛



рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рджреЛрд╣рд░реА рд╕рдВрдЦреНрдпрд╛рдПрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдВрдЧреВрдареА рдмрдирд╛рддреА рд╣реИрдВ, рди рдХрд┐ рдПрдХ рдХреНрд╖реЗрддреНрд░ - рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЙрдирдореЗрдВ рд╕реЗ рд╢реВрдиреНрдп рд╡рд┐рднрд╛рдЬрдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреБрдЫ "рдЕрдЪреНрдЫреА" рд╕рдорд╕реНрдпрд╛ рдХреЛ 0 рд╕реЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рджреЛрд╣рд░реЗ рдореЗрдВ рднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░, рд╣рдо рдЧрдгрд┐рддреАрдп рдХрдареЛрд░рддрд╛ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЛрд╣рд░реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдорд╛рдирддреЗ рд╣реИрдВред



рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ not рдХреЗ рдЧреБрдгрд╛рдВрдХ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЧреБрдгрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдЕрд░реНрдерд╛рдд, рд╡реЗ рдореВрд▓ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдПрдХ рдордирдорд╛рдирд╛ рдореЙрдбреНрдпреВрд▓ (рд╡реЗрдХреНрдЯрд░ рд╕реНрдерд╛рди) рд╕реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХрдИ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдкреНрд░рд╛рдЗрдо рдбреБрдЕрд▓ рдирдВрдмрд░реЛрдВ рдореЗрдВ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ ред рд╣рдорд╛рд░реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреЛ-рд╡рд┐рдХрд░реНрдг рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЧреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдпрд╣ рдПрдХ рддреНрд░рд┐рдХреЛрдгреАрдп рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░реЗ рд╡рд┐рдХрд░реНрдг рдХреЗ рдКрдкрд░ рдЧреБрдгрд╛рдВрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдмрд╛рддрдЪреАрдд рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ - рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВрдЧреЗред

рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЗрд╕рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдХреА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рд╣рдо рдореВрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рджреЛрд╣рд░реЗ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ "рджрд░реНрдЬ" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирд╛ рд╣реИред рдореИрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрддрд╛ рд╣реВрдВ рдЬрдм рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рддреБрд▓рдиреАрдп рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧрдгрдирд╛ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдмрд╣реБрдд рдЬрд▓реНрджреА рдмрдврд╝рддреА рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рдн рдСрдл-рдж-рд╢реЗрд▓реНрдл рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди



рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, BLAS рдФрд░ LAPACK рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╢реБрджреНрдз рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреА - рдПрдХ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рд░рд╛рд╢рд╛ рдиреЗ рдореЗрд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ - рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рдкреИрдХреЗрдЬ (рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдлреНрд░реИрдХреНрд╢рдирд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ - рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рдореЗрдВ рд╕рд╛рдЗрди рдХреЛрд╕рд┐рдиреЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рд░реЗрдЦреАрдп рдирд┐рдХрд▓рд╛ред рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрдЪрд╛рд▓рди рдХреЗрд╡рд▓ 4x4 рддрдХ рдХреЗ рдЖрдХрд╛рд░реЛрдВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджреЛрд╣рд░реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рд░реИрдЦрд┐рдХ рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рдПрдХ рдЖрджрд┐рдо рд╕реЙрд▓реНрд╡рд░ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ ред



рджреЛрд╣рд░реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрд┐рдд рд╣реИ:
data GDual nv = !n :+- (vn)
      
      



рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд░реЛрдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╡реЗрдХреНрдЯрд░ vector рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдХрдВрдЯреЗрдирд░ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд░реИрдЦрд┐рдХ рдкреИрдХреЗрдЬ рд╕реЗ Additive рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред



Num рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдЧреВрдВрдЧрд╛ рд╣реИ:
 instance (Eq n, Num n, Additive v) => Num (GDual nv) where fromInteger x = (fromInteger x) :+- zero (x1 :+- y1) + (x2 :+- y2) = (x1 + x2) :+- (y1 ^+^ y2) (x1 :+- y1) - (x2 :+- y2) = (x1 - x2) :+- (y1 ^-^ y2) (x1 :+- y1) * (x2 :+- y2) = (x1 * x2) :+- ((y1 ^* x2) ^+^ (x1 *^ y2)) negate (x :+- y) = (negate x) :+- (y ^* (-1)) abs (a@(x :+- y)) = case (signum x) of 0 -> 0 :+- fmap abs y z -> ((z * x) :+- (x *^ y)) signum (x :+- y) = case (signum x) of 0 -> 0 :+- fmap signum y z -> z :+- zero
      
      



рд╢реВрдиреНрдп рдФрд░ ( 0: + - ... ) рдХреЗ рдкрдбрд╝реЛрд╕ рдореЗрдВ рдПрдмреНрд╕ рдФрд░ рд╕рд╛рдЗрдирдо рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХреНрд▓рд╛рд╕ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕рдВрдмрдВрдз рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
 abs x * signum x == x
      
      



рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдпрд╣ рдХрд╛рдпрдо рд╣реИред

рдПрдмреНрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд░рд┐рд▓реЗрд╢рдирд╢рд┐рдк f (a + =b) = f (a) +'f тАЩ(a) b рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ, рд╕рдВрд░рдХреНрд╖рд┐рдд рд░рд╣реЗред



рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
 instance (Num (GDual nv), Fractional n, Additive v) => Fractional (GDual nv) where (x1 :+- y1) / (x2 :+- y2) = (x1 / x2) :+- ((y1 ^/ x2) ^-^ ((x1 / (x2 * x2)) *^ y2)) recip (x :+- y) = (recip x) :+- (y ^/ (x * x)) fromRational x = (fromRational x) :+- zero
      
      



рдбрд┐рд╡реАрдЬрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╢реВрдиреНрдп рдХреЗ рдкрдбрд╝реЛрд╕ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ (Additive рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рд╡рд┐рднрд╛рдЬрди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдЬрдм рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ 0/0 рд╡рд┐рднрд╛рдЬрди рд╣реЛрдЧрд╛ред



рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд░реИрдЦрд┐рдХ рдЪрд╛рд╣рддрд╛ рдерд╛, рдмреЗрд╡рдХреВрдл рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рд▓рд╛рдКрдВрдЧрд╛ред

GDual рднреА рдирд┐рдХрдЯрд╡рд░реНрддреА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдирд░ рд╕реЗ рдПрдкреНрд╕рд┐рд▓реЙрди рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред



 Math.GDual.Demo.SimpleSparseSolver.solve :: (Fractional t1, Ord t, Epsilon t1) => [[(t, t1)]] -> [[(t, t1)]]
      
      



рд░реИрдЦрд┐рдХ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рд╡рд┐рд░рд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЧреБрдгрд╛рдВрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╕рдорддрд▓рди рдФрд░ рджрд╛рд╣рд┐рдиреЗ рд╣рд╛рде рдХреЗ рд╕реНрддрдВрдн рд╣реИред рдкреНрд░рд╛рдердорд┐рдХ рдСрдкрд░реЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкрд╣рдЪрд╛рди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджрд╛рдИрдВ рдУрд░ рдПрдХ рдЙрддреНрддрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред



рдШрд┐рд╕реА рд╕рддреНрд░
 Prelude> :load Math.GDual.Demo.SimpleSparseSolver [1 of 1] Compiling Math.GDual.Demo.SimpleSparseSolver ( Math/GDual/Demo/SimpleSparseSolver.hs, interpreted ) Ok, modules loaded: Math.GDual.Demo.SimpleSparseSolver. *Math.GDual.Demo.SimpleSparseSolver> :load Math.GDual Ok, modules loaded: Math.GDual. Prelude Math.GDual> :add Math.GDual.Demo.SimpleSparseSolver [2 of 2] Compiling Math.GDual.Demo.SimpleSparseSolver ( Math/GDual/Demo/SimpleSparseSolver.hs, interpreted ) Ok, modules loaded: Math.GDual.Demo.SimpleSparseSolver, Math.GDual. *Math.GDual.Demo.SimpleSparseSolver> import Math.GDual *Math.GDual.Demo.SimpleSparseSolver Math.GDual> solve [[(0,1 :+- [1,0,0,0]),(1,2 :+- [0,1,0,0]),(2,3)],[(0,1 :+- [0,0,1,0]),(1,1 :+- [0,0,0,1]),(2,1)]] Loading package array-0.4.0.1 ... linking ... done. .... Loading package linear-1.10.1.1 ... linking ... done. [[(2,-1.0+╬╡[-1.0,2.0,2.0,-4.0])],[(2,2.0+╬╡[1.0,-2.0,-1.0,2.0])]] *Math.GDual.Demo.SimpleSparseSolver Math.GDual> import Linear *Math.GDual.Demo.SimpleSparseSolver Math.GDual Linear> inv22 $ V2 (V2 (1 :+- [1,0,0,0]) (2 :+- [0,1,0,0])) (V2 (1 :+- [0,0,1,0]) (1 :+- [0,0,0,1])) Just (V2 (V2 -1.0+╬╡[-1.0,1.0,2.0,-2.0] 2.0+╬╡[2.0,-1.0,-4.0,2.0]) (V2 1.0+╬╡[1.0,-1.0,-1.0,1.0] -1.0+╬╡[-2.0,1.0,2.0,-1.0]))
      
      







рдЯрд┐рдкреНрдкрдгреА



рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рдХреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЧреЛрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдХ рдФрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЕрдВрддрд░рд╛рд▓ рдЕрдВрдХрдЧрдгрд┐рдд



All Articles