%%HP: T(3)A(D)F(.);
DIR
CUBIC
\<< \-> var \<<
	EQ\-> - var 3 PCOEF LIST\-> DROP \-> a b c d \<<
		var b a / c a / d a / PQR =
	\>>
\>> \>>
QUARTIC
\<< \-> var \<<
	EQ\-> - var 4 PCOEF LIST\-> DROP \-> a b c d e \<<
		var b a / c a / d a / e a / ABCD =
	\>>
\>> \>>
PQR
\<< \-> p q r \<<
	q p SQ 3 / - 2 p 3 ^ * 9 p * q * - 27 / r + OVER -3 / \v/ 2 *
	ABM p 3 / -
\>> \>>
ABM
\<< \-> a b m \<<
	3 b * a m * / 'COS(ABM)' = 'ABM' ISOL EQ\-> SWAP DROP
	{ 's1*&A' '&A' } \|^MATCH DROP 3 / COS m *
\>> \>>
ABCD
\<< RCLF \-> a b c d f \<<
	b NEG a c * 4 d * - 4 b * d * a SQ d * - c SQ - -1 SF PQR f STOF
	\-> y \<< y b - a SQ 4 / + \v/ \-> R \<<
		3 a SQ * 4 / R SQ - 2 b * -
		R 0 \=/
		4 a * b * 8 c * - a 3 ^ - 4 R * /
		y SQ 4 d * - \v/ 2 *
		IFTE
		DUP2 + \v/ 2 / 3 ROLLD - \v/ 2 /
		\-> D E \<<
			a -4 / R 2 / IF -1 FC? THEN 's1' * END +
			IF -1 FC? THEN 's1>0' ELSE 1 END
			D E IFTE
			IF -1 FC? THEN 's2' * END +
		\>>
	\>> \>>
\>> \>>
PCOEF
\<<
   3   DUPN   TYPE   SWAP   TYPE   ROT
   TYPE   3   \->LIST   { 0   6   9 }
   IF   ==
   THEN   DUP   1   +   \->   n
      \<<   #18CEAh   SYSEVAL
      SWAP
	 #549CCh   SYSEVAL
	 #74D0h   SYSEVAL
	 #59373h   SYSEVAL
	 DROP   #7497h   SYSEVAL
	 1   n
	 FOR   m   m   ROLL   COLCT
	 NEXT
	 n   \->LIST
      \>>
   END
\>>
N1
\<<
	DUP { n1 0 } | OVER { n1 1 } | 3 PICK { n1 2 } |
\>>
S12
\<<
	DUP { s1 1 s2 1 } |
	OVER { s1 1 s2 -1 } |
	3 PICK { s1 -1 s2 1 } |
	4 PICK { s1 -1 s2 -1 } |
\>>
END


