# (c) copyright 1997, 1998, Leroy J. Dickey print ( `Begin the calculuations.` ) ; print ( `Pappus line`, Pappus ( A, B, C, D, E, F ) ) ; # print ( `Steiner points, Steiner conics ` ) ; S0 := map ( factor , Steiner_point ( A, B, C, D, E, F ) ) ; QS0 := map ( factor, Steiner_conic ( A, B, C, D, E ) ) ; print ( `Is S0 on QS0 ?` , point_on_conic ( S0, QS0 ) ) ; S1 := map ( factor, Steiner_point ( A, B, C, E, D, F ) ); QS1 := map ( factor ,Steiner_conic ( A, B, C, E, D ) ); print ( `Is S1 on QS1 ?`, point_on_conic ( S1, QS1 ) ) ; print ( `Six conics:` ) ; print ( ` six points on QF` ) ; print ( `AD.BE on QF `, cross_point (A,D, B,E) ) ; print ( `BE.CD on QF `, cross_point (B,E, C,D) ) ; print ( `CD.AE on QF `, cross_point (C,D, A,E) ) ; print ( `AE.BD on QF `, cross_point (A,E, B,D) ) ; print ( `BD.CE on QF `, cross_point (B,D, C,E) ) ; print ( `CE.AD on QF `, cross_point (C,E, A,D) ) ; QF := map ( factor, new_conic ( A, B, C, D, E ) ) ; # F print ( `six cross points on new_conic QE` ) ; print ( `AF.BD on QE `, cross_point (A,F, B,D) ) ; print ( `BD.CF on QE `, cross_point (B,D, C,F) ) ; print ( `CF.AD on QE `, cross_point (C,F, A,D) ) ; print ( `AD.BF on QE `, cross_point (A,D, B,F) ) ; print ( `BF.CD on QE `, cross_point (B,F, C,D) ) ; print ( `CD.AF on QE `, cross_point (C,D, A,F) ) ; QE := map ( factor, new_conic ( A, B, C, D, F ) ) ; # E print ( `six cross points on QD` ) ; print ( `AE.BF on QD `, cross_point (A,E, B,F) ) ; print ( `BF.CE on QD `, cross_point (B,F, C,E) ) ; print ( `CE.AF on QD `, cross_point (C,E, A,F) ) ; print ( `AF.BE on QD `, cross_point (A,F, B,E) ) ; print ( `BE.CF on QD `, cross_point (B,E, C,F) ) ; print ( `CF.AE on QD `, cross_point (C,F, A,E) ) ; QD := map ( factor, new_conic ( A, B, C, E, F ) ) ; # D print ( `six cross points on new_conic QC` ) ; print ( `DA.EB on QC `, cross_point (D,A, E,B) ) ; print ( `EB.FA on QC `, cross_point (E,B, F,A) ) ; print ( `FA.DB on QC `, cross_point (F,A, D,B) ) ; print ( `DB.EA on QC `, cross_point (D,B, E,A) ) ; print ( `EA.FB on QC `, cross_point (E,A, F,B) ) ; print ( `FB.DA on QC `, cross_point (F,B, D,A) ) ; QC := map ( factor, new_conic ( D, E, F, A, B ) ) ; # C print ( `six cross points on new_conic QB` ) ; print ( `DC.EA on QB `, cross_point (D,C, E,A) ) ; print ( `EA.FC on QB `, cross_point (E,A, F,C) ) ; print ( `FC.DA on QB `, cross_point (F,C, D,A) ) ; print ( `DA.EC on QB `, cross_point (D,A, E,C) ) ; print ( `EC.FA on QB `, cross_point (E,C, F,A) ) ; print ( `FA.DC on QB `, cross_point (F,A, D,C) ) ; QB := map ( factor, new_conic ( D, E, F, A, C ) ) ; # B print ( `six cross points on new_conic QA` ) ; print ( `DB.EC on QA `, cross_point (D,B, E,C) ) ; print ( `EC.FB on QA `, cross_point (E,C, F,B) ) ; print ( `FB.DC on QA `, cross_point (F,B, D,C) ) ; print ( `DC.EB on QA `, cross_point (D,C, E,B) ) ; print ( `EB.FC on QA `, cross_point (E,B, F,C) ) ; print ( `FC.DB on QA `, cross_point (F,C, D,B) ) ; QA := map ( factor, new_conic ( D, E, F, B, C ) ) ; # A # Let { T1, T2 } = L1 meet QF MT := line_meet_conic ( A, B, QF ) : T1 := row ( 1, MT ) ; T2 := row ( 2, MT ) ; # Let { U1, U2 } = L2 meet QC MU := line_meet_conic ( D, E, QC ) : U1 := row ( 1, MU ) ; U2 := row ( 2, MU ) ; # Two more cross points cross_point2 ( T1, U1, T2, U2 ) : map ( radsimp, " ) : map ( factor, " ) : scalarmul ( " , 1/2 ) : scalarmul ( " , 1/t ) : V1 := scalarmul ( " , -1 ) ; cross_point2 ( T1, U2, T2, U1 ) : map ( radsimp, " ) : map ( factor, " ) : scalarmul ( " , 1/2 ) : scalarmul ( " , 1/t ) : V2 := scalarmul ( " , -1 ) ; print ( `This is the end of the calculuations.` ) ;