1 2(SDEFUN |GALFACT;useEisensteinCriterion?;B;1| (($ |Boolean|)) (QREFELT $ 11)) 3 4(SDEFUN |GALFACT;useEisensteinCriterion;2B;2| ((|b| |Boolean|) ($ |Boolean|)) 5 (SPROG ((|#G5| (|Boolean|)) (|#G4| (|Boolean|))) 6 (SEQ 7 (PROGN 8 (LETT |#G4| |b|) 9 (LETT |#G5| (QREFELT $ 11)) 10 (SETELT $ 11 |#G4|) 11 (LETT |b| |#G5|)) 12 (EXIT |b|)))) 13 14(SDEFUN |GALFACT;tryFunctionalDecomposition?;B;3| (($ |Boolean|)) 15 (QREFELT $ 10)) 16 17(SDEFUN |GALFACT;tryFunctionalDecomposition;2B;4| 18 ((|b| |Boolean|) ($ |Boolean|)) 19 (SPROG ((|#G8| (|Boolean|)) (|#G7| (|Boolean|))) 20 (SEQ 21 (PROGN 22 (LETT |#G7| |b|) 23 (LETT |#G8| (QREFELT $ 10)) 24 (SETELT $ 10 |#G7|) 25 (LETT |b| |#G8|)) 26 (EXIT |b|)))) 27 28(SDEFUN |GALFACT;useSingleFactorBound?;B;5| (($ |Boolean|)) (QREFELT $ 9)) 29 30(SDEFUN |GALFACT;useSingleFactorBound;2B;6| ((|b| |Boolean|) ($ |Boolean|)) 31 (SPROG ((|#G11| (|Boolean|)) (|#G10| (|Boolean|))) 32 (SEQ 33 (PROGN 34 (LETT |#G10| |b|) 35 (LETT |#G11| (QREFELT $ 9)) 36 (SETELT $ 9 |#G10|) 37 (LETT |b| |#G11|)) 38 (EXIT |b|)))) 39 40(SDEFUN |GALFACT;stopMusserTrials;Pi;7| (($ |PositiveInteger|)) (QREFELT $ 8)) 41 42(SDEFUN |GALFACT;stopMusserTrials;2Pi;8| 43 ((|n| |PositiveInteger|) ($ |PositiveInteger|)) 44 (SPROG ((|#G14| (|PositiveInteger|)) (|#G13| (|PositiveInteger|))) 45 (SEQ 46 (PROGN 47 (LETT |#G13| |n|) 48 (LETT |#G14| (QREFELT $ 8)) 49 (SETELT $ 8 |#G13|) 50 (LETT |n| |#G14|)) 51 (EXIT |n|)))) 52 53(SDEFUN |GALFACT;musserTrials;Pi;9| (($ |PositiveInteger|)) (QREFELT $ 7)) 54 55(SDEFUN |GALFACT;musserTrials;2Pi;10| 56 ((|n| |PositiveInteger|) ($ |PositiveInteger|)) 57 (SPROG ((|#G17| (|PositiveInteger|)) (|#G16| (|PositiveInteger|))) 58 (SEQ 59 (PROGN 60 (LETT |#G16| |n|) 61 (LETT |#G17| (QREFELT $ 7)) 62 (SETELT $ 7 |#G16|) 63 (LETT |n| |#G17|)) 64 (EXIT |n|)))) 65 66(SDEFUN |GALFACT;eisensteinIrreducible?;UPB;11| ((|f| UP) ($ |Boolean|)) 67 (SPROG 68 ((#1=#:G489 NIL) (#2=#:G490 NIL) (|p| NIL) (|rf| (UP)) 69 (|tc| #3=(|Integer|)) (|lc| #3#) (|c| (|Integer|))) 70 (SEQ 71 (EXIT 72 (SEQ (LETT |rf| (SPADCALL |f| (QREFELT $ 24))) 73 (LETT |c| (SPADCALL |rf| (QREFELT $ 26))) 74 (EXIT 75 (COND ((OR (ZEROP |c|) (SPADCALL |c| (QREFELT $ 27))) NIL) 76 ('T 77 (SEQ (LETT |lc| (SPADCALL |f| (QREFELT $ 28))) 78 (LETT |tc| |lc|) 79 (SEQ G190 80 (COND 81 ((NULL 82 (NULL (SPADCALL |rf| (QREFELT $ 29)))) 83 (GO G191))) 84 (SEQ 85 (LETT |tc| (SPADCALL |rf| (QREFELT $ 28))) 86 (EXIT 87 (LETT |rf| 88 (SPADCALL |rf| (QREFELT $ 24))))) 89 NIL (GO G190) G191 (EXIT NIL)) 90 (SEQ (LETT |p| NIL) 91 (LETT #2# 92 (SPADCALL (SPADCALL |c| (QREFELT $ 31)) 93 (QREFELT $ 36))) 94 G190 95 (COND 96 ((OR (ATOM #2#) 97 (PROGN (LETT |p| (CAR #2#)) NIL)) 98 (GO G191))) 99 (SEQ 100 (EXIT 101 (COND 102 ((EQL (QVELT |p| 2) 1) 103 (COND 104 ((NULL (ZEROP (REM |lc| (QVELT |p| 1)))) 105 (COND 106 ((NULL 107 (ZEROP 108 (REM |tc| (EXPT (QVELT |p| 1) 2)))) 109 (PROGN 110 (LETT #1# 'T) 111 (GO #4=#:G488)))))))))) 112 (LETT #2# (CDR #2#)) (GO G190) G191 113 (EXIT NIL)) 114 (EXIT NIL))))))) 115 #4# (EXIT #1#)))) 116 117(SDEFUN |GALFACT;numberOfFactors;LNni;12| 118 ((|ddlist| |List| 119 (|Record| (|:| |factor| UP) (|:| |degree| (|Integer|)))) 120 ($ |NonNegativeInteger|)) 121 (SPROG 122 ((|n| (|NonNegativeInteger|)) (#1=#:G492 NIL) (|d| (|Integer|)) 123 (#2=#:G499 NIL) (|dd| NIL)) 124 (SEQ (LETT |n| 0) (LETT |d| 0) 125 (SEQ (LETT |dd| NIL) (LETT #2# |ddlist|) G190 126 (COND 127 ((OR (ATOM #2#) (PROGN (LETT |dd| (CAR #2#)) NIL)) 128 (GO G191))) 129 (SEQ 130 (EXIT 131 (LETT |n| 132 (+ |n| 133 (COND 134 ((ZEROP 135 (LETT |d| 136 (SPADCALL (QCAR |dd|) (QREFELT $ 39)))) 137 1) 138 ('T 139 (PROG1 (LETT #1# (QUOTIENT2 |d| (QCDR |dd|))) 140 (|check_subtype2| (>= #1# 0) 141 '(|NonNegativeInteger|) 142 '(|Integer|) #1#)))))))) 143 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 144 (EXIT |n|)))) 145 146(SDEFUN |GALFACT;shiftSet| 147 ((|s| |Set| (|NonNegativeInteger|)) (|shift| |NonNegativeInteger|) 148 ($ |Set| (|NonNegativeInteger|))) 149 (SPROG NIL 150 (SPADCALL (CONS #'|GALFACT;shiftSet!0| (VECTOR $ |shift|)) |s| 151 (QREFELT $ 46)))) 152 153(SDEFUN |GALFACT;shiftSet!0| ((|e| NIL) ($$ NIL)) 154 (PROG (|shift| $) 155 (LETT |shift| (QREFELT $$ 1)) 156 (LETT $ (QREFELT $$ 0)) 157 (RETURN (PROGN (SPADCALL |e| |shift| (QREFELT $ 43)))))) 158 159(SDEFUN |GALFACT;reductum| ((|n| |Integer|) ($ |Integer|)) 160 (- |n| (ASH 1 (- (INTEGER-LENGTH |n|) 1)))) 161 162(SDEFUN |GALFACT;seed| ((|level| |Integer|) ($ |Integer|)) 163 (- (ASH 1 |level|) 1)) 164 165(SDEFUN |GALFACT;nextRecNum| 166 ((|levels| |NonNegativeInteger|) (|level| |Integer|) (|n| |Integer|) 167 ($ |Union| (|Integer|) "End of level")) 168 (SPROG 169 ((|b| (|Integer|)) (|lr| #1=(|Integer|)) (#2=#:G512 NIL) (|l| #1#)) 170 (SEQ 171 (EXIT 172 (SEQ 173 (SEQ (LETT |l| (INTEGER-LENGTH |n|)) 174 (EXIT 175 (COND 176 ((< |l| |levels|) 177 (PROGN 178 (LETT #2# (CONS 0 (+ |n| (ASH 1 (- |l| 1))))) 179 (GO #3=#:G511)))))) 180 (EXIT 181 (COND 182 ((EQL |n| (ASH (|GALFACT;seed| |level| $) (- |levels| |level|))) 183 (CONS 1 "End of level")) 184 ('T 185 (SEQ (LETT |b| 1) 186 (SEQ G190 187 (COND 188 ((NULL 189 (EQL (- |l| |b|) 190 (LETT |lr| 191 (INTEGER-LENGTH 192 (LETT |n| 193 (|GALFACT;reductum| |n| $)))))) 194 (GO G191))) 195 (SEQ (EXIT (LETT |b| (+ |b| 1)))) NIL (GO G190) G191 196 (EXIT NIL)) 197 (EXIT 198 (CONS 0 199 (+ (|GALFACT;reductum| |n| $) 200 (ASH (|GALFACT;seed| (+ |b| 1) $) |lr|)))))))))) 201 #3# (EXIT #2#)))) 202 203(SDEFUN |GALFACT;fullSet| 204 ((|n| |NonNegativeInteger|) ($ |Set| (|NonNegativeInteger|))) 205 (SPROG ((#1=#:G516 NIL) (|i| NIL) (#2=#:G515 NIL)) 206 (SEQ 207 (SPADCALL 208 (PROGN 209 (LETT #2# NIL) 210 (SEQ (LETT |i| 0) (LETT #1# |n|) G190 211 (COND ((|greater_SI| |i| #1#) (GO G191))) 212 (SEQ (EXIT (LETT #2# (CONS |i| #2#)))) 213 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 214 (EXIT (NREVERSE #2#)))) 215 (QREFELT $ 49))))) 216 217(SDEFUN |GALFACT;is_mod_coprime?| 218 ((|pol1| UP) (|pol2| UP) (|p| |Integer|) (|small| |Boolean|) 219 ($ |Boolean|)) 220 (SPROG ((|vg| (|U32Vector|)) (|v2| #1=(|U32Vector|)) (|v1| #1#)) 221 (SEQ 222 (COND 223 (|small| 224 (SEQ 225 (LETT |v1| 226 (SPADCALL (SPADCALL |pol1| (QREFELT $ 51)) |p| 227 (QREFELT $ 54))) 228 (LETT |v2| 229 (SPADCALL (SPADCALL |pol2| (QREFELT $ 51)) |p| 230 (QREFELT $ 54))) 231 (LETT |vg| (SPADCALL |v1| |v2| |p| (QREFELT $ 55))) 232 (EXIT (<= (SPADCALL |vg| (QREFELT $ 56)) 0)))) 233 ('T 234 (ZEROP 235 (SPADCALL (SPADCALL |pol1| |pol2| |p| (QREFELT $ 58)) 236 (QREFELT $ 39)))))))) 237 238(SDEFUN |GALFACT;add_degs| 239 ((|deg1| |NonNegativeInteger|) (|deg2| |NonNegativeInteger|) 240 (|res| |List| (|NonNegativeInteger|)) 241 ($ |List| (|NonNegativeInteger|))) 242 (SPROG ((#1=#:G522 NIL) (|i| NIL)) 243 (SEQ 244 (COND ((EQL |deg2| 0) |res|) 245 ('T 246 (SEQ 247 (SEQ (LETT |i| 1) (LETT #1# (QUOTIENT2 |deg1| |deg2|)) 248 G190 (COND ((|greater_SI| |i| #1#) (GO G191))) 249 (SEQ (EXIT (LETT |res| (CONS |deg2| |res|)))) 250 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 251 (EXIT NIL)) 252 (EXIT |res|))))))) 253 254(SDEFUN |GALFACT;do_separate| 255 ((|sfl| |List| (|Mapping| #1=(|List| (|U32Vector|)))) (|c| |Integer|) 256 ($ |List| UP)) 257 (SPROG 258 ((|res| (|List| UP)) (#2=#:G529 NIL) (|v| NIL) (|vl| #1#) 259 (#3=#:G528 NIL) (|sf| NIL)) 260 (SEQ (LETT |res| NIL) 261 (SEQ (LETT |sf| NIL) (LETT #3# |sfl|) G190 262 (COND 263 ((OR (ATOM #3#) (PROGN (LETT |sf| (CAR #3#)) NIL)) 264 (GO G191))) 265 (SEQ (LETT |vl| (SPADCALL |sf|)) 266 (EXIT 267 (SEQ (LETT |v| NIL) (LETT #2# |vl|) G190 268 (COND 269 ((OR (ATOM #2#) 270 (PROGN (LETT |v| (CAR #2#)) NIL)) 271 (GO G191))) 272 (SEQ 273 (EXIT 274 (LETT |res| 275 (CONS 276 (SPADCALL (SPADCALL |v| (QREFELT $ 60)) 277 (QREFELT $ 61)) 278 |res|)))) 279 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)))) 280 (LETT #3# (CDR #3#)) (GO G190) G191 (EXIT NIL)) 281 (EXIT (CONS (SPADCALL |c| (QREFELT $ 62)) |res|))))) 282 283(SDEFUN |GALFACT;do_ddfact| 284 ((|pol| UP) (|p| |Integer|) (|small| |Boolean|) 285 ($ |Record| (|:| |dd_list| (|List| (|NonNegativeInteger|))) 286 (|:| |separate_factors| (|Mapping| (|List| UP))))) 287 (SPROG 288 ((|degs| (|List| (|NonNegativeInteger|))) (#1=#:G540 NIL) 289 (#2=#:G547 NIL) (|rl| NIL) 290 (|res1| 291 (|List| (|Record| (|:| |factor| UP) (|:| |degree| (|Integer|))))) 292 (|sfl| (|List| (|Mapping| (|List| (|U32Vector|))))) (#3=#:G534 NIL) 293 (#4=#:G546 NIL) (|fr| NIL) 294 (|ul1| 295 (|List| 296 (|Record| (|:| |poly| (|U32Vector|)) 297 (|:| |degree| (|NonNegativeInteger|)) 298 (|:| |separate_factors| 299 (|Mapping| (|List| (|U32Vector|))))))) 300 (|ci| (|Integer|)) (|c| (|Integer|)) (|dpol| (|Integer|)) 301 (|v| (|U32Vector|))) 302 (SEQ (LETT |degs| NIL) 303 (EXIT 304 (COND 305 (|small| 306 (SEQ 307 (LETT |v| 308 (SPADCALL (SPADCALL |pol| (QREFELT $ 51)) |p| 309 (QREFELT $ 54))) 310 (LETT |dpol| (SPADCALL |v| (QREFELT $ 56))) 311 (LETT |c| (ELT_U32 |v| |dpol|)) 312 (COND 313 ((SPADCALL |c| 1 (QREFELT $ 63)) 314 (SEQ (LETT |ci| (SPADCALL |c| |p| (QREFELT $ 64))) 315 (EXIT 316 (SPADCALL |v| |dpol| |ci| |p| (QREFELT $ 66)))))) 317 (LETT |ul1| (SPADCALL |v| |p| (QREFELT $ 71))) 318 (LETT |sfl| NIL) 319 (SEQ (LETT |fr| NIL) (LETT #4# |ul1|) G190 320 (COND 321 ((OR (ATOM #4#) (PROGN (LETT |fr| (CAR #4#)) NIL)) 322 (GO G191))) 323 (SEQ 324 (LETT |degs| 325 (|GALFACT;add_degs| 326 (PROG1 327 (LETT #3# 328 (SPADCALL (QVELT |fr| 0) 329 (QREFELT $ 56))) 330 (|check_subtype2| (>= #3# 0) 331 '(|NonNegativeInteger|) 332 '(|Integer|) #3#)) 333 (QVELT |fr| 1) |degs| $)) 334 (EXIT (LETT |sfl| (CONS (QVELT |fr| 2) |sfl|)))) 335 (LETT #4# (CDR #4#)) (GO G190) G191 (EXIT NIL)) 336 (EXIT 337 (CONS |degs| 338 (CONS #'|GALFACT;do_ddfact!0| 339 (VECTOR $ |c| |sfl|)))))) 340 ('T 341 (SEQ (LETT |res1| (SPADCALL |pol| |p| (QREFELT $ 72))) 342 (SEQ (LETT |rl| NIL) (LETT #2# |res1|) G190 343 (COND 344 ((OR (ATOM #2#) (PROGN (LETT |rl| (CAR #2#)) NIL)) 345 (GO G191))) 346 (SEQ 347 (EXIT 348 (LETT |degs| 349 (|GALFACT;add_degs| 350 (SPADCALL (QCAR |rl|) (QREFELT $ 39)) 351 (PROG1 (LETT #1# (QCDR |rl|)) 352 (|check_subtype2| (>= #1# 0) 353 '(|NonNegativeInteger|) 354 '(|Integer|) #1#)) 355 |degs| $)))) 356 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 357 (EXIT 358 (CONS |degs| 359 (CONS #'|GALFACT;do_ddfact!1| 360 (VECTOR $ |p| |res1|))))))))))) 361 362(SDEFUN |GALFACT;do_ddfact!1| (($$ NIL)) 363 (PROG (|res1| |p| $) 364 (LETT |res1| (QREFELT $$ 2)) 365 (LETT |p| (QREFELT $$ 1)) 366 (LETT $ (QREFELT $$ 0)) 367 (RETURN (PROGN (SPADCALL |res1| |p| (QREFELT $ 74)))))) 368 369(SDEFUN |GALFACT;do_ddfact!0| (($$ NIL)) 370 (PROG (|sfl| |c| $) 371 (LETT |sfl| (QREFELT $$ 2)) 372 (LETT |c| (QREFELT $$ 1)) 373 (LETT $ (QREFELT $$ 0)) 374 (RETURN (PROGN (|GALFACT;do_separate| |sfl| |c| $))))) 375 376(SDEFUN |GALFACT;modularFactor;UPSR;22| 377 ((|p| UP) (|d| |Set| (|NonNegativeInteger|)) 378 ($ |Record| (|:| |prime| (|Integer|)) (|:| |factors| (|List| UP)))) 379 (SPROG 380 ((|fl| (|List| UP)) (|cprime| (|Integer|)) (|res_prime| (|Integer|)) 381 (|dd_res| 382 #1=(|Record| (|:| |dd_list| (|List| (|NonNegativeInteger|))) 383 (|:| |separate_factors| (|Mapping| (|List| UP))))) 384 (|nf| (|NonNegativeInteger|)) (|nf1| (|NonNegativeInteger|)) 385 (#2=#:G564 NIL) (|s| (|Set| (|NonNegativeInteger|))) (#3=#:G566 NIL) 386 (|degfact| (|NonNegativeInteger|)) 387 (|ddlist| (|List| (|NonNegativeInteger|))) (|dd_res1| #1#) 388 (|small| (|Boolean|)) (#4=#:G565 NIL) (|i| NIL) (|diffp| (UP)) 389 (|degp| #5=(|NonNegativeInteger|)) 390 (|dirred| (|Set| (|NonNegativeInteger|))) (|n| #5#)) 391 (SEQ 392 (EXIT 393 (COND 394 ((NULL (EQL (ABS (SPADCALL |p| (QREFELT $ 26))) 1)) 395 (|error| "modularFactor: the polynomial is not primitive.")) 396 ('T 397 (COND 398 ((ZEROP (LETT |n| (SPADCALL |p| (QREFELT $ 39)))) 399 (CONS 0 (LIST |p|))) 400 ('T 401 (SEQ (LETT |cprime| 2) 402 (LETT |dirred| (SPADCALL (LIST 0 |n|) (QREFELT $ 49))) 403 (LETT |s| (SPADCALL (QREFELT $ 75))) (LETT |ddlist| NIL) 404 (LETT |degfact| 0) 405 (LETT |degp| (SPADCALL |p| (QREFELT $ 39))) 406 (LETT |nf| (+ (+ |degp| (QREFELT $ 8)) 1)) 407 (LETT |diffp| (SPADCALL |p| (QREFELT $ 76))) 408 (LETT |small| 'T) 409 (SEQ (LETT |i| 1) (LETT #4# (QREFELT $ 7)) G190 410 (COND ((|greater_SI| |i| #4#) (GO G191))) 411 (SEQ 412 (EXIT 413 (COND 414 ((> |nf| (QREFELT $ 8)) 415 (SEQ 416 (COND 417 (|small| 418 (COND 419 ((NULL 420 (< (* (* |degp| |cprime|) |cprime|) 421 18446744073709551616)) 422 (LETT |small| NIL))))) 423 (SEQ G190 424 (COND 425 ((NULL 426 (COND 427 ((ZEROP 428 (REM (SPADCALL |p| (QREFELT $ 28)) 429 |cprime|)) 430 'T) 431 ('T 432 (NULL 433 (|GALFACT;is_mod_coprime?| |p| |diffp| 434 |cprime| |small| $))))) 435 (GO G191))) 436 (SEQ 437 (EXIT 438 (LETT |cprime| 439 (SPADCALL |cprime| 440 (QREFELT $ 78))))) 441 NIL (GO G190) G191 (EXIT NIL)) 442 (LETT |dd_res1| 443 (|GALFACT;do_ddfact| |p| |cprime| |small| 444 $)) 445 (LETT |ddlist| (QCAR |dd_res1|)) 446 (LETT |s| (SPADCALL (LIST 0) (QREFELT $ 49))) 447 (SEQ (LETT |degfact| NIL) (LETT #3# |ddlist|) 448 G190 449 (COND 450 ((OR (ATOM #3#) 451 (PROGN 452 (LETT |degfact| (CAR #3#)) 453 NIL)) 454 (GO G191))) 455 (SEQ 456 (EXIT 457 (LETT |s| 458 (SPADCALL |s| 459 (|GALFACT;shiftSet| |s| 460 |degfact| $) 461 (QREFELT $ 79))))) 462 (LETT #3# (CDR #3#)) (GO G190) G191 463 (EXIT NIL)) 464 (LETT |d| (SPADCALL |d| |s| (QREFELT $ 80))) 465 (EXIT 466 (COND 467 ((SPADCALL |d| |dirred| (QREFELT $ 81)) 468 (PROGN 469 (LETT #2# (CONS 0 (LIST |p|))) 470 (GO #6=#:G563))) 471 ('T 472 (SEQ 473 (LETT |nf1| 474 (SPADCALL |ddlist| (QREFELT $ 82))) 475 (COND 476 ((< |nf1| |nf|) 477 (SEQ (LETT |nf| |nf1|) 478 (LETT |dd_res| |dd_res1|) 479 (EXIT (LETT |res_prime| |cprime|)))) 480 ((EQL |nf1| |nf|) 481 (COND 482 ((> |cprime| |res_prime|) 483 (SEQ (LETT |nf| |nf1|) 484 (LETT |dd_res| |dd_res1|) 485 (EXIT 486 (LETT |res_prime| |cprime|))))))) 487 (EXIT 488 (LETT |cprime| 489 (SPADCALL |cprime| 490 (QREFELT $ 78))))))))))))) 491 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)) 492 (LETT |fl| (SPADCALL (QCDR |dd_res|))) 493 (EXIT (CONS |res_prime| |fl|)))))))) 494 #6# (EXIT #2#)))) 495 496(SDEFUN |GALFACT;degreePartition;LM;23| 497 ((|ddlist| |List| 498 (|Record| (|:| |factor| UP) (|:| |degree| (|Integer|)))) 499 ($ |Multiset| (|NonNegativeInteger|))) 500 (SPROG 501 ((|dp| (|Multiset| (|NonNegativeInteger|))) 502 (|dd| #1=(|NonNegativeInteger|)) (#2=#:G568 NIL) (|d| #1#) 503 (#3=#:G574 NIL) (|f| NIL)) 504 (SEQ (LETT |dp| (SPADCALL (QREFELT $ 86))) (LETT |d| 0) (LETT |dd| 0) 505 (SEQ (LETT |f| NIL) (LETT #3# |ddlist|) G190 506 (COND 507 ((OR (ATOM #3#) (PROGN (LETT |f| (CAR #3#)) NIL)) 508 (GO G191))) 509 (SEQ 510 (EXIT 511 (COND 512 ((ZEROP (LETT |d| (SPADCALL (QCAR |f|) (QREFELT $ 39)))) 513 (LETT |dp| (SPADCALL 0 |dp| (QREFELT $ 87)))) 514 ('T 515 (SEQ 516 (LETT |dd| 517 (PROG1 (LETT #2# (QCDR |f|)) 518 (|check_subtype2| (>= #2# 0) 519 '(|NonNegativeInteger|) 520 '(|Integer|) #2#))) 521 (EXIT 522 (LETT |dp| 523 (SPADCALL |dd| |dp| (QUOTIENT2 |d| |dd|) 524 (QREFELT $ 88))))))))) 525 (LETT #3# (CDR #3#)) (GO G190) G191 (EXIT NIL)) 526 (EXIT |dp|)))) 527 528(SDEFUN |GALFACT;sel_set| 529 ((|d| |Set| (|NonNegativeInteger|)) (|n| |NonNegativeInteger|) 530 (|m| |NonNegativeInteger|) ($ |Set| (|NonNegativeInteger|))) 531 (SPROG ((|nm| (|NonNegativeInteger|))) 532 (SEQ 533 (COND ((EQL |n| 0) (SPADCALL (LIST 0) (QREFELT $ 49))) 534 ('T 535 (SEQ (LETT |nm| (* |n| |m|)) 536 (EXIT 537 (SPADCALL 538 (CONS #'|GALFACT;sel_set!0| (VECTOR |n| $ |nm|)) 539 |d| (QREFELT $ 95))))))))) 540 541(SDEFUN |GALFACT;sel_set!0| ((|x| NIL) ($$ NIL)) 542 (PROG (|nm| $ |n|) 543 (LETT |nm| (QREFELT $$ 2)) 544 (LETT $ (QREFELT $$ 1)) 545 (LETT |n| (QREFELT $$ 0)) 546 (RETURN 547 (PROGN 548 (COND 549 ((SPADCALL |x| |nm| (QREFELT $ 90)) 550 (SPADCALL (SPADCALL |x| |n| (QREFELT $ 91)) (|spadConstant| $ 92) 551 (QREFELT $ 93))) 552 ('T NIL)))))) 553 554(SDEFUN |GALFACT;henselfact| 555 ((|f| UP) (|pdecomp| |Boolean|) (|d| |Set| (|NonNegativeInteger|)) 556 ($ . #1=(|List| UP))) 557 (SPROG 558 ((#2=#:G589 NIL) (#3=#:G588 #1#) (#4=#:G590 #1#) (#5=#:G595 NIL) 559 (|g| NIL) (|d1| (|Set| (|NonNegativeInteger|))) 560 (|dh| (|NonNegativeInteger|)) 561 (|lrf| (|Record| (|:| |left| UP) (|:| |right| UP))) 562 (|b| (|PositiveInteger|)) (#6=#:G585 NIL) (|cprime| #7=(|Integer|)) 563 (|m| (|Record| (|:| |prime| #7#) (|:| |factors| (|List| UP)))) 564 (|cf| (|Union| (|Record| (|:| |left| UP) (|:| |right| UP)) "failed")) 565 (#8=#:G594 NIL)) 566 (SEQ 567 (EXIT 568 (SEQ 569 (COND 570 ((SPADCALL |f| (QREFELT $ 97)) 571 (PROGN (LETT #8# (LIST |f|)) (GO #9=#:G593))) 572 ((QREFELT $ 11) 573 (COND 574 ((SPADCALL |f| (QREFELT $ 37)) 575 (PROGN (LETT #8# (LIST |f|)) (GO #9#)))))) 576 (COND 577 (|pdecomp| 578 (COND ((QREFELT $ 10) (LETT |cf| (SPADCALL |f| (QREFELT $ 101)))) 579 (#10='T (LETT |cf| (CONS 1 #11="failed"))))) 580 (#10# (LETT |cf| (CONS 1 #11#)))) 581 (EXIT 582 (COND 583 ((QEQCAR |cf| 1) 584 (SEQ (LETT |m| (SPADCALL |f| |d| (QREFELT $ 84))) 585 (EXIT 586 (COND ((ZEROP (LETT |cprime| (QCAR |m|))) (QCDR |m|)) 587 (#10# 588 (SEQ 589 (LETT |b| 590 (PROG1 591 (LETT #6# 592 (* 593 (* 2 594 (SPADCALL |f| (QREFELT $ 28))) 595 (SPADCALL |f| (QREFELT $ 103)))) 596 (|check_subtype2| (> #6# 0) 597 '(|PositiveInteger|) 598 '(|Integer|) #6#))) 599 (EXIT 600 (SPADCALL |f| (QCDR |m|) |cprime| |b| 601 (QREFELT $ 105))))))))) 602 (#10# 603 (SEQ (LETT |lrf| (QCDR |cf|)) 604 (LETT |dh| (SPADCALL (QCDR |lrf|) (QREFELT $ 39))) 605 (LETT |d1| (|GALFACT;divideSet| |d| |dh| $)) 606 (EXIT 607 (PROGN 608 (LETT #2# NIL) 609 (SEQ (LETT |g| NIL) 610 (LETT #5# 611 (|GALFACT;henselfact| (QCAR |lrf|) 'T |d1| $)) 612 G190 613 (COND 614 ((OR (ATOM #5#) (PROGN (LETT |g| (CAR #5#)) NIL)) 615 (GO G191))) 616 (SEQ 617 (EXIT 618 (PROGN 619 (LETT #4# 620 (|GALFACT;henselfact| 621 (SPADCALL |g| (QCDR |lrf|) 622 (QREFELT $ 106)) 623 NIL 624 (|GALFACT;sel_set| |d| 625 (SPADCALL |g| (QREFELT $ 39)) |dh| $) 626 $)) 627 (COND 628 (#2# 629 (LETT #3# (SPADCALL #3# #4# (QREFELT $ 107)))) 630 ('T (PROGN (LETT #3# #4#) (LETT #2# 'T))))))) 631 (LETT #5# (CDR #5#)) (GO G190) G191 (EXIT NIL)) 632 (COND (#2# #3#) (#10# NIL)))))))))) 633 #9# (EXIT #8#)))) 634 635(SDEFUN |GALFACT;henselfact1| ((|f| UP) (|pdecomp| |Boolean|) ($ |List| UP)) 636 (|GALFACT;henselfact| |f| |pdecomp| 637 (|GALFACT;fullSet| (SPADCALL |f| (QREFELT $ 39)) $) $)) 638 639(SDEFUN |GALFACT;completeFactor| 640 ((|f| UP) (|lf| |List| UP) (|cprime| |Integer|) 641 (|pk| |PositiveInteger|) (|r| |NonNegativeInteger|) 642 (|d| |Set| (|NonNegativeInteger|)) ($ |List| UP)) 643 (SPROG 644 ((|level| (|Integer|)) (|found?| (|Boolean|)) 645 (|levels| (|NonNegativeInteger|)) 646 (|ic| (|Union| (|Integer|) "End of level")) (#1=#:G661 NIL) 647 (#2=#:G647 NIL) 648 (|llg| 649 (|Record| (|:| |plist| (|List| UP)) (|:| |modulo| (|Integer|)))) 650 (|b| (|PositiveInteger|)) (#3=#:G646 NIL) (|ltrue| #4=(|List| UP)) 651 (|degf| #5=(|NonNegativeInteger|)) (#6=#:G643 NIL) (|lg| #4#) 652 (|gpk| (|PositiveInteger|)) (#7=#:G630 NIL) (#8=#:G627 NIL) 653 (#9=#:G626 NIL) (|rg| #5#) (#10=#:G625 NIL) 654 (|dg| (|Set| (|NonNegativeInteger|))) (|f0| (|Integer|)) 655 (|lc| (|Integer|)) (#11=#:G615 NIL) (#12=#:G613 NIL) 656 (|nb| (|Integer|)) (#13=#:G664 NIL) (|j| NIL) 657 (|f1| (|Union| UP "failed")) (|g| (UP)) (#14=#:G663 NIL) 658 (|g0| (|Integer|)) (|degg| #5#) (#15=#:G662 NIL) (|i| (|Integer|)) 659 (#16=#:G505 NIL)) 660 (SEQ 661 (EXIT 662 (SEQ (LETT |lc| (SPADCALL |f| (QREFELT $ 28))) 663 (LETT |f0| (SPADCALL |f| 0 (QREFELT $ 108))) (LETT |ltrue| NIL) 664 (LETT |found?| 'T) (LETT |degf| 0) (LETT |degg| 0) 665 (LETT |g0| 0) (LETT |g| (|spadConstant| $ 59)) (LETT |rg| 0) 666 (LETT |nb| 0) (LETT |lg| NIL) (LETT |b| 1) 667 (LETT |dg| (SPADCALL (QREFELT $ 75))) (LETT |llg| (CONS NIL 0)) 668 (LETT |levels| (LENGTH |lf|)) (LETT |level| 1) 669 (LETT |ic| (CONS 0 0)) (LETT |i| 0) 670 (SEQ G190 (COND ((NULL (< |level| |levels|)) (GO G191))) 671 (SEQ (LETT |ic| (CONS 0 (|GALFACT;seed| |level| $))) 672 (SEQ G190 673 (COND 674 ((NULL 675 (COND (|found?| NIL) ('T (QEQCAR |ic| 0)))) 676 (GO G191))) 677 (SEQ 678 (LETT |i| 679 (PROG2 (LETT #16# |ic|) 680 (QCDR #16#) 681 (|check_union2| (QEQCAR #16# 0) 682 (|Integer|) 683 (|Union| (|Integer|) 684 "End of level") 685 #16#))) 686 (LETT |degg| 0) (LETT |g0| 1) 687 (SEQ (LETT |j| 1) (LETT #15# |levels|) G190 688 (COND ((|greater_SI| |j| #15#) (GO G191))) 689 (SEQ 690 (EXIT 691 (COND 692 ((SPADCALL |i| (- |j| 1) 693 (QREFELT $ 109)) 694 (SEQ 695 (LETT |degg| 696 (+ |degg| 697 (SPADCALL 698 (SPADCALL |lf| |j| 699 (QREFELT $ 110)) 700 (QREFELT $ 39)))) 701 (EXIT 702 (LETT |g0| 703 (* |g0| 704 (SPADCALL 705 (SPADCALL |lf| |j| 706 (QREFELT $ 110)) 707 0 (QREFELT $ 108)))))))))) 708 (LETT |j| (|inc_SI| |j|)) (GO G190) G191 709 (EXIT NIL)) 710 (LETT |g0| 711 (SPADCALL (* |lc| |g0|) |pk| 712 (QREFELT $ 111))) 713 (COND 714 ((SPADCALL |degg| |d| (QREFELT $ 112)) 715 (COND 716 ((QEQCAR 717 (SPADCALL (* |lc| |f0|) |g0| 718 (QREFELT $ 114)) 719 0) 720 (SEQ 721 (LETT |g| (SPADCALL |lc| (QREFELT $ 62))) 722 (SEQ (LETT |j| 1) (LETT #14# |levels|) 723 G190 724 (COND 725 ((|greater_SI| |j| #14#) (GO G191))) 726 (SEQ 727 (EXIT 728 (COND 729 ((SPADCALL |i| (- |j| 1) 730 (QREFELT $ 109)) 731 (LETT |g| 732 (SPADCALL |g| 733 (SPADCALL |lf| 734 |j| 735 (QREFELT 736 $ 737 110)) 738 (QREFELT $ 739 115))))))) 740 (LETT |j| (|inc_SI| |j|)) (GO G190) 741 G191 (EXIT NIL)) 742 (LETT |g| 743 (SPADCALL 744 (SPADCALL |g| |pk| (QREFELT $ 116)) 745 (QREFELT $ 117))) 746 (LETT |f1| 747 (SPADCALL |f| |g| (QREFELT $ 118))) 748 (EXIT 749 (COND 750 ((QEQCAR |f1| 0) 751 (SEQ (LETT |found?| 'T) (LETT |nb| 1) 752 (SEQ (LETT |j| 1) 753 (LETT #13# |levels|) G190 754 (COND 755 ((|greater_SI| |j| #13#) 756 (GO G191))) 757 (SEQ 758 (EXIT 759 (COND 760 ((SPADCALL |i| (- |j| 1) 761 (QREFELT $ 762 109)) 763 (SEQ 764 (SPADCALL |lf| |j| |nb| 765 (QREFELT $ 766 119)) 767 (EXIT 768 (LETT |nb| 769 (+ |nb| 1)))))))) 770 (LETT |j| (|inc_SI| |j|)) 771 (GO G190) G191 (EXIT NIL)) 772 (LETT |lg| |lf|) 773 (LETT |lf| 774 (SPADCALL |lf| 775 (PROG1 776 (LETT #12# 777 |level|) 778 (|check_subtype2| 779 (>= #12# 0) 780 '(|NonNegativeInteger|) 781 '(|Integer|) 782 #12#)) 783 (QREFELT $ 120))) 784 (SPADCALL 785 (SPADCALL |lg| 786 (PROG1 787 (LETT #11# 788 (- |level| 789 1)) 790 (|check_subtype2| 791 (>= #11# 0) 792 '(|NonNegativeInteger|) 793 '(|Integer|) #11#)) 794 (QREFELT $ 120)) 795 NIL (QREFELT $ 121)) 796 (LETT |f| (QCDR |f1|)) 797 (LETT |lc| 798 (SPADCALL |f| 799 (QREFELT $ 28))) 800 (LETT |f0| 801 (SPADCALL |f| 0 802 (QREFELT $ 108))) 803 (LETT |dg| 804 (SPADCALL 805 (CONS 806 #'|GALFACT;completeFactor!0| 807 (VECTOR $ |degg|)) 808 |d| (QREFELT $ 95))) 809 (COND 810 ((SPADCALL |dg| 811 (SPADCALL 812 (LIST 0 |degg|) 813 (QREFELT $ 49)) 814 (QREFELT $ 81)) 815 (LETT |lg| (LIST |g|))) 816 ('T 817 (SEQ 818 (LETT |rg| 819 (PROG1 820 (LETT #10# 821 (MAX 2 822 (- 823 (+ |r| 824 |level|) 825 |levels|))) 826 (|check_subtype2| 827 (>= #10# 0) 828 '(|NonNegativeInteger|) 829 '(|Integer|) #10#))) 830 (LETT |b| 831 (PROG1 832 (LETT #9# 833 (* 834 (* 2 835 (SPADCALL 836 |g| 837 (QREFELT $ 838 28))) 839 (SPADCALL |g| 840 |rg| 841 (QREFELT 842 $ 843 122)))) 844 (|check_subtype2| 845 (> #9# 0) 846 '(|PositiveInteger|) 847 '(|Integer|) #9#))) 848 (EXIT 849 (COND 850 ((> |b| |pk|) 851 (COND 852 ((SPADCALL |g| 853 (QREFELT $ 97)) 854 (LETT |lg| (LIST |g|))) 855 ((QREFELT $ 11) 856 (COND 857 ((SPADCALL |g| 858 (QREFELT $ 859 37)) 860 (LETT |lg| (LIST |g|))) 861 ('T 862 (SEQ 863 (LETT |llg| 864 (SPADCALL |g| 865 |lg| 866 |cprime| 867 |b| 868 (QREFELT 869 $ 870 124))) 871 (LETT |gpk| 872 (PROG1 873 (LETT #8# 874 (QCDR 875 |llg|)) 876 (|check_subtype2| 877 (> #8# 0) 878 '(|PositiveInteger|) 879 '(|Integer|) 880 #8#))) 881 (EXIT 882 (COND 883 ((< |gpk| |b|) 884 (LETT |lg| 885 (QCAR |llg|))) 886 ('T 887 (LETT |lg| 888 (|GALFACT;completeFactor| 889 |g| 890 (QCAR |llg|) 891 |cprime| 892 |gpk| |rg| 893 |dg| 894 $))))))))) 895 ('T 896 (SEQ 897 (LETT |llg| 898 (SPADCALL |g| |lg| 899 |cprime| 900 |b| 901 (QREFELT 902 $ 124))) 903 (LETT |gpk| 904 (PROG1 905 (LETT #7# 906 (QCDR 907 |llg|)) 908 (|check_subtype2| 909 (> #7# 0) 910 '(|PositiveInteger|) 911 '(|Integer|) 912 #7#))) 913 (EXIT 914 (COND 915 ((< |gpk| |b|) 916 (LETT |lg| 917 (QCAR |llg|))) 918 ('T 919 (LETT |lg| 920 (|GALFACT;completeFactor| 921 |g| 922 (QCAR |llg|) 923 |cprime| |gpk| 924 |rg| |dg| 925 $))))))))) 926 ('T 927 (LETT |lg| (LIST |g|)))))))) 928 (LETT |ltrue| 929 (SPADCALL |ltrue| |lg| 930 (QREFELT $ 107))) 931 (LETT |r| 932 (PROG1 933 (LETT #6# 934 (MAX 2 935 (- |r| 936 (LENGTH 937 |lg|)))) 938 (|check_subtype2| 939 (>= #6# 0) 940 '(|NonNegativeInteger|) 941 '(|Integer|) #6#))) 942 (LETT |degf| 943 (SPADCALL |f| 944 (QREFELT $ 39))) 945 (LETT |d| 946 (SPADCALL 947 (CONS 948 #'|GALFACT;completeFactor!1| 949 (VECTOR $ |degf|)) 950 |d| (QREFELT $ 95))) 951 (EXIT 952 (COND 953 ((<= |degf| 1) 954 (SEQ 955 (COND 956 ((EQL |degf| 1) 957 (LETT |ltrue| 958 (CONS |f| |ltrue|)))) 959 (EXIT 960 (PROGN 961 (LETT #1# |ltrue|) 962 (GO #17=#:G660))))) 963 ('T 964 (SEQ 965 (LETT |b| 966 (PROG1 967 (LETT #3# 968 (* (* 2 |lc|) 969 (SPADCALL 970 |f| |r| 971 (QREFELT $ 972 122)))) 973 (|check_subtype2| 974 (> #3# 0) 975 '(|PositiveInteger|) 976 '(|Integer|) #3#))) 977 (EXIT 978 (COND 979 ((> |b| |pk|) 980 (SEQ 981 (LETT |llg| 982 (SPADCALL |f| |lf| 983 |cprime| 984 |b| 985 (QREFELT $ 986 124))) 987 (LETT |lf| (QCAR |llg|)) 988 (LETT |pk| 989 (PROG1 990 (LETT #2# 991 (QCDR 992 |llg|)) 993 (|check_subtype2| 994 (> #2# 0) 995 '(|PositiveInteger|) 996 '(|Integer|) 997 #2#))) 998 (COND 999 ((< |pk| |b|) 1000 (PROGN 1001 (LETT #1# 1002 (SPADCALL |lf| 1003 |ltrue| 1004 (QREFELT 1005 $ 1006 107))) 1007 (GO #17#)))) 1008 (EXIT 1009 (LETT |level| 1010 1))))))))))))))))))) 1011 (EXIT 1012 (LETT |ic| 1013 (|GALFACT;nextRecNum| |levels| |level| 1014 |i| $)))) 1015 NIL (GO G190) G191 (EXIT NIL)) 1016 (COND 1017 (|found?| 1018 (SEQ (LETT |levels| (LENGTH |lf|)) 1019 (EXIT (LETT |found?| NIL))))) 1020 (EXIT 1021 (COND 1022 ((NULL (QEQCAR |ic| 0)) 1023 (LETT |level| (+ |level| 1)))))) 1024 NIL (GO G190) G191 (EXIT NIL)) 1025 (EXIT (CONS |f| |ltrue|)))) 1026 #17# (EXIT #1#)))) 1027 1028(SDEFUN |GALFACT;completeFactor!1| ((|x| NIL) ($$ NIL)) 1029 (PROG (|degf| $) 1030 (LETT |degf| (QREFELT $$ 1)) 1031 (LETT $ (QREFELT $$ 0)) 1032 (RETURN (PROGN (SPADCALL |x| |degf| (QREFELT $ 90)))))) 1033 1034(SDEFUN |GALFACT;completeFactor!0| ((|x| NIL) ($$ NIL)) 1035 (PROG (|degg| $) 1036 (LETT |degg| (QREFELT $$ 1)) 1037 (LETT $ (QREFELT $$ 0)) 1038 (RETURN (PROGN (SPADCALL |x| |degg| (QREFELT $ 90)))))) 1039 1040(SDEFUN |GALFACT;divideSet| 1041 ((|s| |Set| (|NonNegativeInteger|)) (|n| |NonNegativeInteger|) 1042 ($ |Set| (|NonNegativeInteger|))) 1043 (SPROG 1044 ((|l| (|List| (|NonNegativeInteger|))) 1045 (|ee| (|Union| (|NonNegativeInteger|) "failed")) (#1=#:G672 NIL) 1046 (|e| NIL)) 1047 (SEQ (LETT |l| (LIST 0)) 1048 (SEQ (LETT |e| NIL) (LETT #1# (SPADCALL |s| (QREFELT $ 125))) 1049 G190 1050 (COND 1051 ((OR (ATOM #1#) (PROGN (LETT |e| (CAR #1#)) NIL)) 1052 (GO G191))) 1053 (SEQ (LETT |ee| (SPADCALL |e| |n| (QREFELT $ 126))) 1054 (EXIT 1055 (COND 1056 ((QEQCAR |ee| 0) 1057 (LETT |l| (CONS (QCDR |ee|) |l|)))))) 1058 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 1059 (EXIT (SPADCALL |l| (QREFELT $ 49)))))) 1060 1061(SDEFUN |GALFACT;btwFactor| 1062 ((|f| UP) (|d| |Set| (|NonNegativeInteger|)) (|r| |NonNegativeInteger|) 1063 (|pdecomp| |Boolean|) ($ . #1=(|List| UP))) 1064 (SPROG 1065 ((#2=#:G726 NIL) (|i| NIL) (|lf| #3=(|List| UP)) (#4=#:G725 NIL) 1066 (|fact| NIL) (#5=#:G724 NIL) (#6=#:G712 NIL) (|lfg| #1#) 1067 (#7=#:G703 NIL) (|df| #8=(|NonNegativeInteger|)) (#9=#:G693 NIL) 1068 (|dgh| (|NonNegativeInteger|)) (|dg| #8#) (|g| (UP)) (#10=#:G723 NIL) 1069 (|lg| #1#) (|dh| #8#) 1070 (|lrf| (|Record| (|:| |left| UP) (|:| |right| UP))) 1071 (|pk| (|PositiveInteger|)) (#11=#:G688 NIL) 1072 (|lm| (|Record| (|:| |plist| #3#) (|:| |modulo| (|Integer|)))) 1073 (|b| (|PositiveInteger|)) (#12=#:G686 NIL) (|lc| (|Integer|)) 1074 (#13=#:G722 NIL) (|cprime| #14=(|Integer|)) 1075 (|m| (|Record| (|:| |prime| #14#) (|:| |factors| (|List| UP)))) 1076 (|cf| (|Union| (|Record| (|:| |left| UP) (|:| |right| UP)) "failed")) 1077 (|negativelc?| #15=(|Boolean|)) (|reverse?| #15#)) 1078 (SEQ 1079 (EXIT 1080 (SEQ (LETT |df| (SPADCALL |f| (QREFELT $ 39))) 1081 (COND 1082 ((NULL (EQL (SPADCALL |d| (QREFELT $ 127)) |df|)) 1083 (EXIT (|error| "btwFact: Bad arguments")))) 1084 (LETT |reverse?| NIL) (LETT |negativelc?| NIL) 1085 (EXIT 1086 (COND 1087 ((SPADCALL |d| (SPADCALL (LIST 0 |df|) (QREFELT $ 49)) 1088 (QREFELT $ 81)) 1089 (LIST |f|)) 1090 (#16='T 1091 (SEQ 1092 (COND 1093 ((< (ABS (SPADCALL |f| 0 (QREFELT $ 108))) 1094 (ABS (SPADCALL |f| (QREFELT $ 28)))) 1095 (SEQ (LETT |f| (SPADCALL |f| (QREFELT $ 129))) 1096 (EXIT (LETT |reverse?| 'T))))) 1097 (COND 1098 ((SPADCALL |f| (QREFELT $ 97)) 1099 (EXIT 1100 (COND (|reverse?| (LIST (SPADCALL |f| (QREFELT $ 129)))) 1101 (#16# (LIST |f|))))) 1102 ((QREFELT $ 11) 1103 (COND 1104 ((SPADCALL |f| (QREFELT $ 37)) 1105 (EXIT 1106 (COND 1107 (|reverse?| (LIST (SPADCALL |f| (QREFELT $ 129)))) 1108 (#16# (LIST |f|)))))))) 1109 (COND 1110 ((< (SPADCALL |f| (QREFELT $ 28)) 0) 1111 (SEQ (LETT |f| (SPADCALL |f| (QREFELT $ 130))) 1112 (EXIT (LETT |negativelc?| 'T))))) 1113 (COND 1114 (|pdecomp| 1115 (COND 1116 ((QREFELT $ 10) 1117 (LETT |cf| (SPADCALL |f| (QREFELT $ 101)))) 1118 (#16# (LETT |cf| (CONS 1 #17="failed"))))) 1119 (#16# (LETT |cf| (CONS 1 #17#)))) 1120 (COND 1121 ((QEQCAR |cf| 1) 1122 (SEQ (LETT |m| (SPADCALL |f| |d| (QREFELT $ 84))) 1123 (EXIT 1124 (COND 1125 ((ZEROP (LETT |cprime| (QCAR |m|))) 1126 (COND 1127 (|reverse?| 1128 (COND 1129 (|negativelc?| 1130 (PROGN 1131 (LETT #13# 1132 (LIST 1133 (SPADCALL 1134 (SPADCALL |f| (QREFELT $ 129)) 1135 (QREFELT $ 130)))) 1136 (GO #18=#:G721))) 1137 (#16# 1138 (PROGN 1139 (LETT #13# 1140 (LIST (SPADCALL |f| (QREFELT $ 129)))) 1141 (GO #18#))))) 1142 (|negativelc?| 1143 (PROGN 1144 (LETT #13# 1145 (LIST (SPADCALL |f| (QREFELT $ 130)))) 1146 (GO #18#))) 1147 (#16# 1148 (PROGN (LETT #13# (LIST |f|)) (GO #18#))))) 1149 (#16# 1150 (SEQ 1151 (COND 1152 ((SPADCALL |f| (QREFELT $ 131)) 1153 (LETT |d| (SPADCALL 1 |d| (QREFELT $ 132))))) 1154 (LETT |lc| (SPADCALL |f| (QREFELT $ 28))) 1155 (LETT |b| 1156 (PROG1 1157 (LETT #12# 1158 (* (* 2 |lc|) 1159 (SPADCALL |f| |r| 1160 (QREFELT $ 122)))) 1161 (|check_subtype2| (> #12# 0) 1162 '(|PositiveInteger|) 1163 '(|Integer|) #12#))) 1164 (LETT |lm| 1165 (SPADCALL |f| (QCDR |m|) |cprime| |b| 1166 (QREFELT $ 124))) 1167 (LETT |lf| (QCAR |lm|)) 1168 (LETT |pk| 1169 (PROG1 (LETT #11# (QCDR |lm|)) 1170 (|check_subtype2| (> #11# 0) 1171 '(|PositiveInteger|) 1172 '(|Integer|) #11#))) 1173 (COND 1174 ((SPADCALL (|SPADfirst| |lf|) (QREFELT $ 133)) 1175 (LETT |lf| (CDR |lf|)))) 1176 (EXIT 1177 (COND 1178 ((NULL (< |pk| |b|)) 1179 (LETT |lf| 1180 (|GALFACT;completeFactor| |f| |lf| 1181 |cprime| |pk| |r| |d| $))))))))))) 1182 (#16# 1183 (SEQ (LETT |lrf| (QCDR |cf|)) 1184 (LETT |dh| (SPADCALL (QCDR |lrf|) (QREFELT $ 39))) 1185 (LETT |lg| 1186 (|GALFACT;btwFactor| (QCAR |lrf|) 1187 (|GALFACT;divideSet| |d| |dh| $) 2 'T $)) 1188 (LETT |lf| NIL) 1189 (EXIT 1190 (SEQ (LETT |i| 1) (LETT #10# (LENGTH |lg|)) G190 1191 (COND ((|greater_SI| |i| #10#) (GO G191))) 1192 (SEQ 1193 (LETT |g| 1194 (SPADCALL |lg| |i| (QREFELT $ 110))) 1195 (LETT |dg| (SPADCALL |g| (QREFELT $ 39))) 1196 (LETT |dgh| (* |dg| |dh|)) 1197 (LETT |df| 1198 (PROG2 1199 (LETT #9# 1200 (SPADCALL |df| |dgh| 1201 (QREFELT $ 134))) 1202 (QCDR #9#) 1203 (|check_union2| (QEQCAR #9# 0) 1204 (|NonNegativeInteger|) 1205 (|Union| 1206 (|NonNegativeInteger|) 1207 "failed") 1208 #9#))) 1209 (LETT |lfg| 1210 (|GALFACT;btwFactor| 1211 (SPADCALL |g| (QCDR |lrf|) 1212 (QREFELT $ 106)) 1213 (|GALFACT;sel_set| |d| |dg| |dh| $) 1214 (PROG1 (LETT #7# (MAX 2 (- |r| |df|))) 1215 (|check_subtype2| (>= #7# 0) 1216 '(|NonNegativeInteger|) 1217 '(|Integer|) #7#)) 1218 NIL $)) 1219 (LETT |lf| 1220 (SPADCALL |lf| |lfg| (QREFELT $ 107))) 1221 (EXIT 1222 (LETT |r| 1223 (PROG1 1224 (LETT #6# 1225 (MAX 2 1226 (- |r| 1227 (LENGTH |lfg|)))) 1228 (|check_subtype2| (>= #6# 0) 1229 '(|NonNegativeInteger|) 1230 '(|Integer|) 1231 #6#))))) 1232 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 1233 (EXIT NIL)))))) 1234 (COND 1235 (|reverse?| 1236 (LETT |lf| 1237 (PROGN 1238 (LETT #5# NIL) 1239 (SEQ (LETT |fact| NIL) (LETT #4# |lf|) G190 1240 (COND 1241 ((OR (ATOM #4#) 1242 (PROGN (LETT |fact| (CAR #4#)) NIL)) 1243 (GO G191))) 1244 (SEQ 1245 (EXIT 1246 (LETT #5# 1247 (CONS 1248 (SPADCALL |fact| (QREFELT $ 129)) 1249 #5#)))) 1250 (LETT #4# (CDR #4#)) (GO G190) G191 1251 (EXIT (NREVERSE #5#))))))) 1252 (SEQ (LETT |i| 1) (LETT #2# (LENGTH |lf|)) G190 1253 (COND ((|greater_SI| |i| #2#) (GO G191))) 1254 (SEQ 1255 (EXIT 1256 (COND 1257 ((< 1258 (SPADCALL (SPADCALL |lf| |i| (QREFELT $ 110)) 1259 (QREFELT $ 28)) 1260 0) 1261 (SPADCALL |lf| |i| 1262 (SPADCALL 1263 (SPADCALL |lf| |i| (QREFELT $ 110)) 1264 (QREFELT $ 130)) 1265 (QREFELT $ 135)))))) 1266 (LETT |i| (|inc_SI| |i|)) (GO G190) G191 (EXIT NIL)) 1267 (EXIT |lf|))))))) 1268 #18# (EXIT #13#)))) 1269 1270(SDEFUN |GALFACT;makeFR;RF;30| 1271 ((|flist| |Record| (|:| |contp| (|Integer|)) 1272 (|:| |factors| 1273 (|List| 1274 (|Record| (|:| |irr| UP) (|:| |pow| (|NonNegativeInteger|)))))) 1275 ($ |Factored| UP)) 1276 (SPROG 1277 ((|fflist| 1278 (|List| 1279 (|Record| (|:| |flag| (|Union| "nil" "sqfr" "irred" "prime")) 1280 (|:| |factor| UP) 1281 (|:| |exponent| (|NonNegativeInteger|))))) 1282 (#1=#:G743 NIL) (|fc| NIL) (#2=#:G742 NIL) (|ff| NIL) 1283 (|ctp| (|Factored| (|Integer|)))) 1284 (SEQ (LETT |ctp| (SPADCALL (QCAR |flist|) (QREFELT $ 31))) 1285 (LETT |fflist| NIL) 1286 (SEQ (LETT |ff| NIL) (LETT #2# (QCDR |flist|)) G190 1287 (COND 1288 ((OR (ATOM #2#) (PROGN (LETT |ff| (CAR #2#)) NIL)) 1289 (GO G191))) 1290 (SEQ 1291 (EXIT 1292 (LETT |fflist| 1293 (CONS 1294 (VECTOR (CONS 3 "prime") (QCAR |ff|) (QCDR |ff|)) 1295 |fflist|)))) 1296 (LETT #2# (CDR #2#)) (GO G190) G191 (EXIT NIL)) 1297 (SEQ (LETT |fc| NIL) (LETT #1# (SPADCALL |ctp| (QREFELT $ 36))) 1298 G190 1299 (COND 1300 ((OR (ATOM #1#) (PROGN (LETT |fc| (CAR #1#)) NIL)) 1301 (GO G191))) 1302 (SEQ 1303 (EXIT 1304 (LETT |fflist| 1305 (CONS 1306 (VECTOR (QVELT |fc| 0) 1307 (SPADCALL (QVELT |fc| 1) (QREFELT $ 62)) 1308 (QVELT |fc| 2)) 1309 |fflist|)))) 1310 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 1311 (EXIT 1312 (SPADCALL 1313 (SPADCALL (SPADCALL |ctp| (QREFELT $ 136)) (QREFELT $ 62)) 1314 |fflist| (QREFELT $ 140)))))) 1315 1316(SDEFUN |GALFACT;quadratic| ((|p| UP) ($ |List| UP)) 1317 (SPROG 1318 ((#1=#:G749 NIL) (|f| (UP)) (|b| (|Integer|)) (|a| (|Integer|)) 1319 (|d| (|Integer|)) (|r| (|Union| (|Integer|) "failed"))) 1320 (SEQ (LETT |a| (SPADCALL |p| (QREFELT $ 28))) 1321 (LETT |b| (SPADCALL |p| 1 (QREFELT $ 108))) 1322 (LETT |d| 1323 (- (EXPT |b| 2) 1324 (* (* 4 |a|) (SPADCALL |p| 0 (QREFELT $ 108))))) 1325 (LETT |r| (SPADCALL |d| (QREFELT $ 146))) 1326 (EXIT 1327 (COND ((QEQCAR |r| 1) (LIST |p|)) 1328 ('T 1329 (SEQ (LETT |b| (+ |b| (QCDR |r|))) (LETT |a| (* 2 |a|)) 1330 (LETT |d| (GCD |a| |b|)) 1331 (COND 1332 ((NULL (EQL |d| 1)) 1333 (SEQ (LETT |a| (QUOTIENT2 |a| |d|)) 1334 (EXIT (LETT |b| (QUOTIENT2 |b| |d|)))))) 1335 (LETT |f| 1336 (SPADCALL (SPADCALL |a| 1 (QREFELT $ 147)) 1337 (SPADCALL |b| 0 (QREFELT $ 147)) 1338 (QREFELT $ 148))) 1339 (EXIT 1340 (CONS |f| 1341 (LIST 1342 (PROG2 1343 (LETT #1# 1344 (SPADCALL |p| |f| 1345 (QREFELT $ 118))) 1346 (QCDR #1#) 1347 (|check_union2| (QEQCAR #1# 0) 1348 (QREFELT $ 6) 1349 (|Union| (QREFELT $ 6) 1350 "failed") 1351 #1#)))))))))))) 1352 1353(SDEFUN |GALFACT;isPowerOf2| ((|n| |Integer|) ($ |Boolean|)) 1354 (SPROG 1355 ((|qr| 1356 (|Record| (|:| |quotient| (|Integer|)) 1357 (|:| |remainder| (|Integer|))))) 1358 (SEQ 1359 (COND ((EQL |n| 1) 'T) 1360 (#1='T 1361 (SEQ (LETT |qr| (DIVIDE2 |n| 2)) 1362 (EXIT 1363 (COND ((EQL (QCDR |qr|) 1) NIL) 1364 (#1# (|GALFACT;isPowerOf2| (QCAR |qr|) $)))))))))) 1365 1366(SDEFUN |GALFACT;subMinusX| 1367 ((|supPol| |SparseUnivariatePolynomial| (|Integer|)) ($ UP)) 1368 (SPROG ((|minusX| (|SparseUnivariatePolynomial| (|Integer|)))) 1369 (SEQ (LETT |minusX| (SPADCALL -1 1 (QREFELT $ 149))) 1370 (EXIT 1371 (SPADCALL (SPADCALL |supPol| |minusX| (QREFELT $ 150)) 1372 (QREFELT $ 61)))))) 1373 1374(SDEFUN |GALFACT;henselFact;UPBR;34| 1375 ((|f| UP) (|sqf| |Boolean|) 1376 ($ |Record| (|:| |contp| (|Integer|)) 1377 (|:| |factors| 1378 (|List| 1379 (|Record| (|:| |irr| UP) 1380 (|:| |pow| (|NonNegativeInteger|))))))) 1381 (SPROG 1382 ((|factorlist| 1383 (|List| 1384 (|Record| (|:| |irr| UP) (|:| |pow| (|NonNegativeInteger|))))) 1385 (#1=#:G800 NIL) (|pf| NIL) (#2=#:G799 NIL) (#3=#:G798 NIL) 1386 (#4=#:G797 NIL) (|d| (|NonNegativeInteger|)) (|sqff| (UP)) 1387 (|mult| #5=(|NonNegativeInteger|)) (#6=#:G796 NIL) (|sqfr| NIL) 1388 (|sqfflist| 1389 (|List| 1390 (|Record| (|:| |flag| (|Union| "nil" "sqfr" "irred" "prime")) 1391 (|:| |factor| UP) (|:| |exponent| #5#)))) 1392 (#7=#:G795 NIL) (#8=#:G794 NIL) (|fac| (UP)) (#9=#:G793 NIL) 1393 (|sfac| NIL) (#10=#:G792 NIL) (|lcPol| (UP)) (|c| (|Integer|)) 1394 (#11=#:G762 NIL)) 1395 (SEQ (LETT |factorlist| NIL) (LETT |c| (SPADCALL |f| (QREFELT $ 26))) 1396 (LETT |f| 1397 (PROG2 (LETT #11# (SPADCALL |f| |c| (QREFELT $ 151))) 1398 (QCDR #11#) 1399 (|check_union2| (QEQCAR #11# 0) (QREFELT $ 6) 1400 (|Union| (QREFELT $ 6) "failed") #11#))) 1401 (COND 1402 ((< (SPADCALL |f| (QREFELT $ 28)) 0) 1403 (SEQ (LETT |c| (- |c|)) 1404 (EXIT (LETT |f| (SPADCALL |f| (QREFELT $ 130))))))) 1405 (SEQ (LETT |d| (SPADCALL |f| (QREFELT $ 152))) 1406 (EXIT 1407 (COND 1408 ((> |d| 0) 1409 (SEQ 1410 (LETT |f| 1411 (QCAR 1412 (SPADCALL |f| (SPADCALL 1 |d| (QREFELT $ 147)) 1413 (QREFELT $ 154)))) 1414 (EXIT 1415 (LETT |factorlist| 1416 (LIST 1417 (CONS (SPADCALL 1 1 (QREFELT $ 147)) 1418 |d|))))))))) 1419 (LETT |d| (SPADCALL |f| (QREFELT $ 39))) 1420 (EXIT 1421 (COND ((ZEROP |d|) (CONS |c| |factorlist|)) 1422 ((EQL |d| 1) (CONS |c| (CONS (CONS |f| 1) |factorlist|))) 1423 (#12='T 1424 (SEQ 1425 (LETT |lcPol| 1426 (SPADCALL (SPADCALL |f| (QREFELT $ 28)) 1427 (QREFELT $ 62))) 1428 (EXIT 1429 (COND 1430 ((SPADCALL (SPADCALL |lcPol| (QREFELT $ 130)) 1431 (SPADCALL |f| (QREFELT $ 24)) 1432 (QREFELT $ 155)) 1433 (SEQ 1434 (SEQ (LETT |fac| NIL) 1435 (LETT #10# 1436 (SPADCALL (ELT $ 61) 1437 (SPADCALL |d| (QREFELT $ 158)) 1438 (QREFELT $ 161))) 1439 G190 1440 (COND 1441 ((OR (ATOM #10#) 1442 (PROGN (LETT |fac| (CAR #10#)) NIL)) 1443 (GO G191))) 1444 (SEQ 1445 (EXIT 1446 (LETT |factorlist| 1447 (CONS (CONS |fac| 1) |factorlist|)))) 1448 (LETT #10# (CDR #10#)) (GO G190) G191 1449 (EXIT NIL)) 1450 (EXIT (CONS |c| |factorlist|)))) 1451 (#12# 1452 (SEQ 1453 (COND 1454 ((ODDP |d|) 1455 (COND 1456 ((SPADCALL |lcPol| (SPADCALL |f| (QREFELT $ 24)) 1457 (QREFELT $ 155)) 1458 (EXIT 1459 (SEQ 1460 (SEQ (LETT |sfac| NIL) 1461 (LETT #9# (SPADCALL |d| (QREFELT $ 158))) 1462 G190 1463 (COND 1464 ((OR (ATOM #9#) 1465 (PROGN 1466 (LETT |sfac| (CAR #9#)) 1467 NIL)) 1468 (GO G191))) 1469 (SEQ 1470 (LETT |fac| 1471 (|GALFACT;subMinusX| |sfac| $)) 1472 (COND 1473 ((< (SPADCALL |fac| (QREFELT $ 28)) 0) 1474 (LETT |fac| 1475 (SPADCALL |fac| 1476 (QREFELT $ 130))))) 1477 (EXIT 1478 (LETT |factorlist| 1479 (CONS (CONS |fac| 1) 1480 |factorlist|)))) 1481 (LETT #9# (CDR #9#)) (GO G190) G191 1482 (EXIT NIL)) 1483 (EXIT (CONS |c| |factorlist|)))))))) 1484 (COND 1485 ((|GALFACT;isPowerOf2| |d| $) 1486 (COND 1487 ((SPADCALL |lcPol| (SPADCALL |f| (QREFELT $ 24)) 1488 (QREFELT $ 155)) 1489 (EXIT 1490 (SEQ 1491 (LETT |factorlist| 1492 (CONS (CONS |f| 1) |factorlist|)) 1493 (EXIT (CONS |c| |factorlist|)))))))) 1494 (EXIT 1495 (COND 1496 (|sqf| 1497 (CONS |c| 1498 (SPADCALL 1499 (PROGN 1500 (LETT #8# NIL) 1501 (SEQ (LETT |pf| NIL) 1502 (LETT #7# 1503 (|GALFACT;henselfact1| |f| 'T 1504 $)) 1505 G190 1506 (COND 1507 ((OR (ATOM #7#) 1508 (PROGN 1509 (LETT |pf| (CAR #7#)) 1510 NIL)) 1511 (GO G191))) 1512 (SEQ 1513 (EXIT 1514 (LETT #8# 1515 (CONS (CONS |pf| 1) #8#)))) 1516 (LETT #7# (CDR #7#)) (GO G190) G191 1517 (EXIT (NREVERSE #8#)))) 1518 |factorlist| (QREFELT $ 163)))) 1519 (#12# 1520 (SEQ 1521 (LETT |sqfflist| 1522 (SPADCALL (SPADCALL |f| (QREFELT $ 164)) 1523 (QREFELT $ 165))) 1524 (SEQ (LETT |sqfr| NIL) (LETT #6# |sqfflist|) 1525 G190 1526 (COND 1527 ((OR (ATOM #6#) 1528 (PROGN (LETT |sqfr| (CAR #6#)) NIL)) 1529 (GO G191))) 1530 (SEQ (LETT |mult| (QVELT |sqfr| 2)) 1531 (LETT |sqff| (QVELT |sqfr| 1)) 1532 (LETT |d| 1533 (SPADCALL |sqff| 1534 (QREFELT $ 39))) 1535 (EXIT 1536 (COND 1537 ((EQL |d| 1) 1538 (LETT |factorlist| 1539 (CONS (CONS |sqff| |mult|) 1540 |factorlist|))) 1541 ((EQL |d| 2) 1542 (LETT |factorlist| 1543 (SPADCALL 1544 (PROGN 1545 (LETT #4# NIL) 1546 (SEQ (LETT |pf| NIL) 1547 (LETT #3# 1548 (|GALFACT;quadratic| 1549 |sqff| $)) 1550 G190 1551 (COND 1552 ((OR (ATOM #3#) 1553 (PROGN 1554 (LETT |pf| 1555 (CAR 1556 #3#)) 1557 NIL)) 1558 (GO G191))) 1559 (SEQ 1560 (EXIT 1561 (LETT #4# 1562 (CONS 1563 (CONS |pf| 1564 |mult|) 1565 #4#)))) 1566 (LETT #3# (CDR #3#)) 1567 (GO G190) G191 1568 (EXIT 1569 (NREVERSE #4#)))) 1570 |factorlist| 1571 (QREFELT $ 163)))) 1572 ('T 1573 (LETT |factorlist| 1574 (SPADCALL 1575 (PROGN 1576 (LETT #2# NIL) 1577 (SEQ (LETT |pf| NIL) 1578 (LETT #1# 1579 (|GALFACT;henselfact1| 1580 |sqff| 'T $)) 1581 G190 1582 (COND 1583 ((OR (ATOM #1#) 1584 (PROGN 1585 (LETT |pf| 1586 (CAR 1587 #1#)) 1588 NIL)) 1589 (GO G191))) 1590 (SEQ 1591 (EXIT 1592 (LETT #2# 1593 (CONS 1594 (CONS |pf| 1595 |mult|) 1596 #2#)))) 1597 (LETT #1# (CDR #1#)) 1598 (GO G190) G191 1599 (EXIT 1600 (NREVERSE #2#)))) 1601 |factorlist| 1602 (QREFELT $ 163))))))) 1603 (LETT #6# (CDR #6#)) (GO G190) G191 1604 (EXIT NIL)) 1605 (EXIT (CONS |c| |factorlist|))))))))))))))))) 1606 1607(SDEFUN |GALFACT;btwFact;UPBSNniR;35| 1608 ((|f| UP) (|sqf| |Boolean|) (|fd| |Set| (|NonNegativeInteger|)) 1609 (|r| |NonNegativeInteger|) 1610 ($ |Record| (|:| |contp| (|Integer|)) 1611 (|:| |factors| 1612 (|List| 1613 (|Record| (|:| |irr| UP) 1614 (|:| |pow| (|NonNegativeInteger|))))))) 1615 (SPROG 1616 ((|maxd| (|NonNegativeInteger|)) (#1=#:G849 NIL) 1617 (|factorlist| 1618 (|List| 1619 (|Record| (|:| |irr| UP) (|:| |pow| (|NonNegativeInteger|))))) 1620 (#2=#:G867 NIL) (|pf| NIL) (#3=#:G866 NIL) (#4=#:G844 NIL) 1621 (#5=#:G865 NIL) (#6=#:G864 NIL) (#7=#:G840 NIL) 1622 (|d| (|NonNegativeInteger|)) (|sqff| (UP)) 1623 (|mult| #8=(|NonNegativeInteger|)) (#9=#:G863 NIL) (|sqfr| NIL) 1624 (|sqfflist| 1625 (|List| 1626 (|Record| (|:| |flag| (|Union| "nil" "sqfr" "irred" "prime")) 1627 (|:| |factor| UP) (|:| |exponent| #8#)))) 1628 (#10=#:G862 NIL) (#11=#:G861 NIL) (|fac| (UP)) (#12=#:G860 NIL) 1629 (|sfac| NIL) (#13=#:G859 NIL) (|lcPol| (UP)) (#14=#:G820 NIL) 1630 (#15=#:G818 NIL) (|c| (|Integer|)) (#16=#:G805 NIL)) 1631 (SEQ (LETT |d| (SPADCALL |f| (QREFELT $ 39))) 1632 (COND 1633 ((NULL (EQL (SPADCALL |fd| (QREFELT $ 127)) |d|)) 1634 (EXIT (|error| "btwFact: Bad arguments")))) 1635 (LETT |factorlist| NIL) (LETT |c| (SPADCALL |f| (QREFELT $ 26))) 1636 (LETT |f| 1637 (PROG2 (LETT #16# (SPADCALL |f| |c| (QREFELT $ 151))) 1638 (QCDR #16#) 1639 (|check_union2| (QEQCAR #16# 0) (QREFELT $ 6) 1640 (|Union| (QREFELT $ 6) "failed") #16#))) 1641 (COND 1642 ((< (SPADCALL |f| (QREFELT $ 28)) 0) 1643 (SEQ (LETT |c| (- |c|)) 1644 (EXIT (LETT |f| (SPADCALL |f| (QREFELT $ 130))))))) 1645 (SEQ (LETT |maxd| (SPADCALL |f| (QREFELT $ 152))) 1646 (EXIT 1647 (COND 1648 ((> |maxd| 0) 1649 (SEQ 1650 (LETT |f| 1651 (QCAR 1652 (SPADCALL |f| (SPADCALL 1 |maxd| (QREFELT $ 147)) 1653 (QREFELT $ 154)))) 1654 (LETT |factorlist| 1655 (LIST 1656 (CONS (SPADCALL 1 1 (QREFELT $ 147)) |maxd|))) 1657 (LETT |r| 1658 (PROG1 (LETT #15# (MAX 2 (- |r| |maxd|))) 1659 (|check_subtype2| (>= #15# 0) 1660 '(|NonNegativeInteger|) 1661 '(|Integer|) #15#))) 1662 (LETT |d| 1663 (PROG2 1664 (LETT #14# 1665 (SPADCALL |d| |maxd| (QREFELT $ 134))) 1666 (QCDR #14#) 1667 (|check_union2| (QEQCAR #14# 0) 1668 (|NonNegativeInteger|) 1669 (|Union| (|NonNegativeInteger|) 1670 "failed") 1671 #14#))) 1672 (EXIT 1673 (LETT |fd| 1674 (SPADCALL 1675 (CONS #'|GALFACT;btwFact;UPBSNniR;35!0| 1676 (VECTOR $ |d|)) 1677 |fd| (QREFELT $ 95))))))))) 1678 (EXIT 1679 (COND ((ZEROP |d|) (CONS |c| |factorlist|)) 1680 ((EQL |d| 1) (CONS |c| (CONS (CONS |f| 1) |factorlist|))) 1681 (#17='T 1682 (SEQ 1683 (LETT |lcPol| 1684 (SPADCALL (SPADCALL |f| (QREFELT $ 28)) 1685 (QREFELT $ 62))) 1686 (EXIT 1687 (COND 1688 ((SPADCALL (SPADCALL |lcPol| (QREFELT $ 130)) 1689 (SPADCALL |f| (QREFELT $ 24)) 1690 (QREFELT $ 155)) 1691 (SEQ 1692 (SEQ (LETT |fac| NIL) 1693 (LETT #13# 1694 (SPADCALL (ELT $ 61) 1695 (SPADCALL |d| (QREFELT $ 158)) 1696 (QREFELT $ 161))) 1697 G190 1698 (COND 1699 ((OR (ATOM #13#) 1700 (PROGN (LETT |fac| (CAR #13#)) NIL)) 1701 (GO G191))) 1702 (SEQ 1703 (EXIT 1704 (LETT |factorlist| 1705 (CONS (CONS |fac| 1) |factorlist|)))) 1706 (LETT #13# (CDR #13#)) (GO G190) G191 1707 (EXIT NIL)) 1708 (EXIT (CONS |c| |factorlist|)))) 1709 (#17# 1710 (SEQ 1711 (COND 1712 ((ODDP |d|) 1713 (COND 1714 ((SPADCALL |lcPol| (SPADCALL |f| (QREFELT $ 24)) 1715 (QREFELT $ 155)) 1716 (EXIT 1717 (SEQ 1718 (SEQ (LETT |sfac| NIL) 1719 (LETT #12# 1720 (SPADCALL |d| (QREFELT $ 158))) 1721 G190 1722 (COND 1723 ((OR (ATOM #12#) 1724 (PROGN 1725 (LETT |sfac| (CAR #12#)) 1726 NIL)) 1727 (GO G191))) 1728 (SEQ 1729 (LETT |fac| 1730 (|GALFACT;subMinusX| |sfac| $)) 1731 (COND 1732 ((< (SPADCALL |fac| (QREFELT $ 28)) 0) 1733 (LETT |fac| 1734 (SPADCALL |fac| 1735 (QREFELT $ 130))))) 1736 (EXIT 1737 (LETT |factorlist| 1738 (CONS (CONS |fac| 1) 1739 |factorlist|)))) 1740 (LETT #12# (CDR #12#)) (GO G190) G191 1741 (EXIT NIL)) 1742 (EXIT (CONS |c| |factorlist|)))))))) 1743 (COND 1744 ((|GALFACT;isPowerOf2| |d| $) 1745 (COND 1746 ((SPADCALL |lcPol| (SPADCALL |f| (QREFELT $ 24)) 1747 (QREFELT $ 155)) 1748 (EXIT 1749 (SEQ 1750 (LETT |factorlist| 1751 (CONS (CONS |f| 1) |factorlist|)) 1752 (EXIT (CONS |c| |factorlist|)))))))) 1753 (EXIT 1754 (COND 1755 (|sqf| 1756 (CONS |c| 1757 (SPADCALL 1758 (PROGN 1759 (LETT #11# NIL) 1760 (SEQ (LETT |pf| NIL) 1761 (LETT #10# 1762 (|GALFACT;btwFactor| |f| |fd| 1763 |r| 'T $)) 1764 G190 1765 (COND 1766 ((OR (ATOM #10#) 1767 (PROGN 1768 (LETT |pf| (CAR #10#)) 1769 NIL)) 1770 (GO G191))) 1771 (SEQ 1772 (EXIT 1773 (LETT #11# 1774 (CONS (CONS |pf| 1) #11#)))) 1775 (LETT #10# (CDR #10#)) (GO G190) 1776 G191 (EXIT (NREVERSE #11#)))) 1777 |factorlist| (QREFELT $ 163)))) 1778 (#17# 1779 (SEQ 1780 (LETT |sqfflist| 1781 (SPADCALL (SPADCALL |f| (QREFELT $ 164)) 1782 (QREFELT $ 165))) 1783 (COND 1784 ((EQL (LENGTH |sqfflist|) 1) 1785 (LETT |r| 1786 (MAX 1787 (QUOTIENT2 |r| 1788 (QVELT 1789 (|SPADfirst| |sqfflist|) 1790 2)) 1791 2))) 1792 (#17# (LETT |r| 2))) 1793 (SEQ (LETT |sqfr| NIL) (LETT #9# |sqfflist|) 1794 G190 1795 (COND 1796 ((OR (ATOM #9#) 1797 (PROGN (LETT |sqfr| (CAR #9#)) NIL)) 1798 (GO G191))) 1799 (SEQ (LETT |mult| (QVELT |sqfr| 2)) 1800 (LETT |sqff| (QVELT |sqfr| 1)) 1801 (LETT |d| 1802 (SPADCALL |sqff| 1803 (QREFELT $ 39))) 1804 (EXIT 1805 (COND 1806 ((EQL |d| 1) 1807 (SEQ 1808 (LETT |factorlist| 1809 (CONS (CONS |sqff| |mult|) 1810 |factorlist|)) 1811 (LETT |maxd| 1812 (PROG1 1813 (LETT #7# 1814 (- 1815 (SPADCALL |fd| 1816 (QREFELT 1817 $ 1818 127)) 1819 |mult|)) 1820 (|check_subtype2| 1821 (>= #7# 0) 1822 '(|NonNegativeInteger|) 1823 '(|Integer|) #7#))) 1824 (EXIT 1825 (LETT |fd| 1826 (SPADCALL 1827 (CONS 1828 #'|GALFACT;btwFact;UPBSNniR;35!1| 1829 (VECTOR $ |maxd|)) 1830 |fd| (QREFELT $ 95)))))) 1831 ((EQL |d| 2) 1832 (SEQ 1833 (LETT |factorlist| 1834 (SPADCALL 1835 (PROGN 1836 (LETT #6# NIL) 1837 (SEQ (LETT |pf| NIL) 1838 (LETT #5# 1839 (|GALFACT;quadratic| 1840 |sqff| $)) 1841 G190 1842 (COND 1843 ((OR (ATOM #5#) 1844 (PROGN 1845 (LETT |pf| 1846 (CAR 1847 #5#)) 1848 NIL)) 1849 (GO G191))) 1850 (SEQ 1851 (EXIT 1852 (LETT #6# 1853 (CONS 1854 (CONS |pf| 1855 |mult|) 1856 #6#)))) 1857 (LETT #5# (CDR #5#)) 1858 (GO G190) G191 1859 (EXIT 1860 (NREVERSE #6#)))) 1861 |factorlist| 1862 (QREFELT $ 163))) 1863 (LETT |maxd| 1864 (PROG1 1865 (LETT #4# 1866 (- 1867 (SPADCALL |fd| 1868 (QREFELT 1869 $ 1870 127)) 1871 (* 2 |mult|))) 1872 (|check_subtype2| 1873 (>= #4# 0) 1874 '(|NonNegativeInteger|) 1875 '(|Integer|) #4#))) 1876 (EXIT 1877 (LETT |fd| 1878 (SPADCALL 1879 (CONS 1880 #'|GALFACT;btwFact;UPBSNniR;35!2| 1881 (VECTOR $ |maxd|)) 1882 |fd| (QREFELT $ 95)))))) 1883 ('T 1884 (SEQ 1885 (LETT |factorlist| 1886 (SPADCALL 1887 (PROGN 1888 (LETT #3# NIL) 1889 (SEQ (LETT |pf| NIL) 1890 (LETT #2# 1891 (|GALFACT;btwFactor| 1892 |sqff| 1893 (SPADCALL 1894 (CONS 1895 #'|GALFACT;btwFact;UPBSNniR;35!3| 1896 (VECTOR $ 1897 |d|)) 1898 |fd| 1899 (QREFELT $ 1900 95)) 1901 |r| 'T $)) 1902 G190 1903 (COND 1904 ((OR (ATOM #2#) 1905 (PROGN 1906 (LETT |pf| 1907 (CAR 1908 #2#)) 1909 NIL)) 1910 (GO G191))) 1911 (SEQ 1912 (EXIT 1913 (LETT #3# 1914 (CONS 1915 (CONS |pf| 1916 |mult|) 1917 #3#)))) 1918 (LETT #2# (CDR #2#)) 1919 (GO G190) G191 1920 (EXIT 1921 (NREVERSE #3#)))) 1922 |factorlist| 1923 (QREFELT $ 163))) 1924 (LETT |maxd| 1925 (PROG1 1926 (LETT #1# 1927 (- 1928 (SPADCALL |fd| 1929 (QREFELT 1930 $ 1931 127)) 1932 (* |d| |mult|))) 1933 (|check_subtype2| 1934 (>= #1# 0) 1935 '(|NonNegativeInteger|) 1936 '(|Integer|) #1#))) 1937 (EXIT 1938 (LETT |fd| 1939 (SPADCALL 1940 (CONS 1941 #'|GALFACT;btwFact;UPBSNniR;35!4| 1942 (VECTOR $ |maxd|)) 1943 |fd| 1944 (QREFELT $ 95))))))))) 1945 (LETT #9# (CDR #9#)) (GO G190) G191 1946 (EXIT NIL)) 1947 (EXIT (CONS |c| |factorlist|))))))))))))))))) 1948 1949(SDEFUN |GALFACT;btwFact;UPBSNniR;35!4| ((|x| NIL) ($$ NIL)) 1950 (PROG (|maxd| $) 1951 (LETT |maxd| (QREFELT $$ 1)) 1952 (LETT $ (QREFELT $$ 0)) 1953 (RETURN (PROGN (SPADCALL |x| |maxd| (QREFELT $ 90)))))) 1954 1955(SDEFUN |GALFACT;btwFact;UPBSNniR;35!3| ((|x| NIL) ($$ NIL)) 1956 (PROG (|d| $) 1957 (LETT |d| (QREFELT $$ 1)) 1958 (LETT $ (QREFELT $$ 0)) 1959 (RETURN (PROGN (SPADCALL |x| |d| (QREFELT $ 90)))))) 1960 1961(SDEFUN |GALFACT;btwFact;UPBSNniR;35!2| ((|x| NIL) ($$ NIL)) 1962 (PROG (|maxd| $) 1963 (LETT |maxd| (QREFELT $$ 1)) 1964 (LETT $ (QREFELT $$ 0)) 1965 (RETURN (PROGN (SPADCALL |x| |maxd| (QREFELT $ 90)))))) 1966 1967(SDEFUN |GALFACT;btwFact;UPBSNniR;35!1| ((|x| NIL) ($$ NIL)) 1968 (PROG (|maxd| $) 1969 (LETT |maxd| (QREFELT $$ 1)) 1970 (LETT $ (QREFELT $$ 0)) 1971 (RETURN (PROGN (SPADCALL |x| |maxd| (QREFELT $ 90)))))) 1972 1973(SDEFUN |GALFACT;btwFact;UPBSNniR;35!0| ((|x| NIL) ($$ NIL)) 1974 (PROG (|d| $) 1975 (LETT |d| (QREFELT $$ 1)) 1976 (LETT $ (QREFELT $$ 0)) 1977 (RETURN (PROGN (SPADCALL |x| |d| (QREFELT $ 90)))))) 1978 1979(SDEFUN |GALFACT;factor;UPF;36| ((|f| UP) ($ |Factored| UP)) 1980 (SPADCALL 1981 (COND 1982 ((QREFELT $ 9) 1983 (SPADCALL |f| NIL 1984 (|GALFACT;fullSet| (SPADCALL |f| (QREFELT $ 39)) $) 2 1985 (QREFELT $ 167))) 1986 ('T (SPADCALL |f| NIL (QREFELT $ 166)))) 1987 (QREFELT $ 143))) 1988 1989(SDEFUN |GALFACT;errorsum?| 1990 ((|d| |NonNegativeInteger|) (|ld| |List| #1=(|NonNegativeInteger|)) 1991 ($ |Boolean|)) 1992 (SPROG 1993 ((#2=#:G871 NIL) (#3=#:G870 #1#) (#4=#:G872 #1#) (#5=#:G875 NIL) 1994 (#6=#:G400 NIL)) 1995 (SEQ 1996 (NULL 1997 (EQL |d| 1998 (PROGN 1999 (LETT #2# NIL) 2000 (SEQ (LETT #6# NIL) (LETT #5# |ld|) G190 2001 (COND 2002 ((OR (ATOM #5#) (PROGN (LETT #6# (CAR #5#)) NIL)) 2003 (GO G191))) 2004 (SEQ 2005 (EXIT 2006 (PROGN 2007 (LETT #4# #6#) 2008 (COND (#2# (LETT #3# (+ #3# #4#))) 2009 ('T (PROGN (LETT #3# #4#) (LETT #2# 'T))))))) 2010 (LETT #5# (CDR #5#)) (GO G190) G191 (EXIT NIL)) 2011 (COND (#2# #3#) ('T 0)))))))) 2012 2013(SDEFUN |GALFACT;makeSet| 2014 ((|ld| |List| (|NonNegativeInteger|)) ($ |Set| (|NonNegativeInteger|))) 2015 (SPROG ((|s| (|Set| (|NonNegativeInteger|))) (#1=#:G879 NIL) (|d| NIL)) 2016 (SEQ (LETT |s| (SPADCALL (LIST 0) (QREFELT $ 49))) 2017 (SEQ (LETT |d| NIL) (LETT #1# |ld|) G190 2018 (COND 2019 ((OR (ATOM #1#) (PROGN (LETT |d| (CAR #1#)) NIL)) 2020 (GO G191))) 2021 (SEQ 2022 (EXIT 2023 (LETT |s| 2024 (SPADCALL |s| (|GALFACT;shiftSet| |s| |d| $) 2025 (QREFELT $ 79))))) 2026 (LETT #1# (CDR #1#)) (GO G190) G191 (EXIT NIL)) 2027 (EXIT |s|)))) 2028 2029(SDEFUN |GALFACT;factor;UPLNniF;39| 2030 ((|f| UP) (|ld| |List| (|NonNegativeInteger|)) 2031 (|r| |NonNegativeInteger|) ($ |Factored| UP)) 2032 (COND 2033 ((|GALFACT;errorsum?| (SPADCALL |f| (QREFELT $ 39)) |ld| $) 2034 (|error| "factor: Bad arguments")) 2035 ('T 2036 (SPADCALL 2037 (SPADCALL |f| NIL (|GALFACT;makeSet| |ld| $) |r| (QREFELT $ 167)) 2038 (QREFELT $ 143))))) 2039 2040(SDEFUN |GALFACT;factor;UPNniF;40| 2041 ((|f| UP) (|r| |NonNegativeInteger|) ($ |Factored| UP)) 2042 (SPADCALL 2043 (SPADCALL |f| NIL (|GALFACT;fullSet| (SPADCALL |f| (QREFELT $ 39)) $) 2044 |r| (QREFELT $ 167)) 2045 (QREFELT $ 143))) 2046 2047(SDEFUN |GALFACT;factor;UPLF;41| 2048 ((|f| UP) (|ld| |List| (|NonNegativeInteger|)) ($ |Factored| UP)) 2049 (SPADCALL |f| |ld| 2 (QREFELT $ 169))) 2050 2051(SDEFUN |GALFACT;factor;UP2NniF;42| 2052 ((|f| UP) (|d| |NonNegativeInteger|) (|r| |NonNegativeInteger|) 2053 ($ |Factored| UP)) 2054 (SPROG ((|n| (|Union| (|NonNegativeInteger|) "failed"))) 2055 (SEQ 2056 (LETT |n| 2057 (SPADCALL (SPADCALL |f| (QREFELT $ 39)) |d| 2058 (QREFELT $ 126))) 2059 (EXIT 2060 (COND ((QEQCAR |n| 1) (|error| "factor: Bad arguments")) 2061 ('T 2062 (SPADCALL |f| (SPADCALL (QCDR |n|) |d| (QREFELT $ 172)) 2063 |r| (QREFELT $ 169)))))))) 2064 2065(SDEFUN |GALFACT;factorSquareFree;UPF;43| ((|f| UP) ($ |Factored| UP)) 2066 (SPADCALL 2067 (COND 2068 ((QREFELT $ 9) 2069 (SPADCALL |f| 'T (|GALFACT;fullSet| (SPADCALL |f| (QREFELT $ 39)) $) 2070 2 (QREFELT $ 167))) 2071 ('T (SPADCALL |f| 'T (QREFELT $ 166)))) 2072 (QREFELT $ 143))) 2073 2074(SDEFUN |GALFACT;factorSquareFree;UPLNniF;44| 2075 ((|f| UP) (|ld| |List| (|NonNegativeInteger|)) 2076 (|r| |NonNegativeInteger|) ($ |Factored| UP)) 2077 (COND 2078 ((|GALFACT;errorsum?| (SPADCALL |f| (QREFELT $ 39)) |ld| $) 2079 (|error| "factorSquareFree: Bad arguments")) 2080 ('T 2081 (SPADCALL 2082 (SPADCALL |f| 'T (|GALFACT;makeSet| |ld| $) |r| (QREFELT $ 167)) 2083 (QREFELT $ 143))))) 2084 2085(SDEFUN |GALFACT;factorSquareFree;UPNniF;45| 2086 ((|f| UP) (|r| |NonNegativeInteger|) ($ |Factored| UP)) 2087 (SPADCALL 2088 (SPADCALL |f| 'T (|GALFACT;fullSet| (SPADCALL |f| (QREFELT $ 39)) $) 2089 |r| (QREFELT $ 167)) 2090 (QREFELT $ 143))) 2091 2092(SDEFUN |GALFACT;factorSquareFree;UPLF;46| 2093 ((|f| UP) (|ld| |List| (|NonNegativeInteger|)) ($ |Factored| UP)) 2094 (SPADCALL |f| |ld| 2 (QREFELT $ 175))) 2095 2096(SDEFUN |GALFACT;factorSquareFree;UP2NniF;47| 2097 ((|f| UP) (|d| |NonNegativeInteger|) (|r| |NonNegativeInteger|) 2098 ($ |Factored| UP)) 2099 (SPROG ((|n| (|Union| (|NonNegativeInteger|) "failed"))) 2100 (SEQ 2101 (LETT |n| 2102 (SPADCALL (SPADCALL |f| (QREFELT $ 39)) |d| 2103 (QREFELT $ 126))) 2104 (EXIT 2105 (COND 2106 ((QEQCAR |n| 1) (|error| "factorSquareFree: Bad arguments")) 2107 ('T 2108 (SPADCALL |f| (SPADCALL (QCDR |n|) |d| (QREFELT $ 172)) |r| 2109 (QREFELT $ 175)))))))) 2110 2111(SDEFUN |GALFACT;factorOfDegree;PiUPLNniBU;48| 2112 ((|d| |PositiveInteger|) (|p| UP) (|ld| |List| (|NonNegativeInteger|)) 2113 (|r| |NonNegativeInteger|) (|sqf| |Boolean|) ($ |Union| UP "failed")) 2114 (SPROG 2115 ((#1=#:G918 NIL) (#2=#:G919 NIL) (#3=#:G920 NIL) (|f| NIL) 2116 (|lf| 2117 (|List| 2118 (|Record| (|:| |irr| UP) (|:| |pow| (|NonNegativeInteger|))))) 2119 (|dp| (|NonNegativeInteger|))) 2120 (SEQ 2121 (EXIT 2122 (SEQ (LETT |dp| (SPADCALL |p| (QREFELT $ 39))) 2123 (EXIT 2124 (COND 2125 ((|GALFACT;errorsum?| |dp| |ld| $) 2126 (|error| "factorOfDegree: Bad arguments")) 2127 ('T 2128 (SEQ 2129 (COND 2130 ((EQL |d| 1) 2131 (COND 2132 ((SPADCALL |p| (QREFELT $ 131)) 2133 (EXIT (CONS 1 "failed")))))) 2134 (LETT |lf| 2135 (QCDR 2136 (SPADCALL |p| |sqf| (|GALFACT;makeSet| |ld| $) |r| 2137 (QREFELT $ 167)))) 2138 (SEQ 2139 (EXIT 2140 (SEQ (LETT |f| NIL) (LETT #3# |lf|) G190 2141 (COND 2142 ((OR (ATOM #3#) (PROGN (LETT |f| (CAR #3#)) NIL)) 2143 (GO G191))) 2144 (SEQ 2145 (EXIT 2146 (COND 2147 ((EQL (SPADCALL (QCAR |f|) (QREFELT $ 39)) |d|) 2148 (PROGN 2149 (LETT #1# 2150 (PROGN 2151 (LETT #2# (CONS 0 (QCAR |f|))) 2152 (GO #4=#:G917))) 2153 (GO #5=#:G911)))))) 2154 (LETT #3# (CDR #3#)) (GO G190) G191 (EXIT NIL))) 2155 #5# (EXIT #1#)) 2156 (EXIT (CONS 1 "failed")))))))) 2157 #4# (EXIT #2#)))) 2158 2159(SDEFUN |GALFACT;factorOfDegree;PiUPLNniU;49| 2160 ((|d| |PositiveInteger|) (|p| UP) (|ld| |List| (|NonNegativeInteger|)) 2161 (|r| |NonNegativeInteger|) ($ |Union| UP "failed")) 2162 (SPADCALL |d| |p| |ld| |r| NIL (QREFELT $ 180))) 2163 2164(SDEFUN |GALFACT;factorOfDegree;PiUPNniU;50| 2165 ((|d| |PositiveInteger|) (|p| UP) (|r| |NonNegativeInteger|) 2166 ($ |Union| UP "failed")) 2167 (SPADCALL |d| |p| 2168 (SPADCALL (SPADCALL |p| (QREFELT $ 39)) 1 (QREFELT $ 172)) 2169 |r| NIL (QREFELT $ 180))) 2170 2171(SDEFUN |GALFACT;factorOfDegree;PiUPLU;51| 2172 ((|d| |PositiveInteger|) (|p| UP) (|ld| |List| (|NonNegativeInteger|)) 2173 ($ |Union| UP "failed")) 2174 (SPADCALL |d| |p| |ld| 2 NIL (QREFELT $ 180))) 2175 2176(SDEFUN |GALFACT;factorOfDegree;PiUPU;52| 2177 ((|d| |PositiveInteger|) (|p| UP) ($ |Union| UP "failed")) 2178 (SPADCALL |d| |p| 2179 (SPADCALL (SPADCALL |p| (QREFELT $ 39)) 1 (QREFELT $ 172)) 2 2180 NIL (QREFELT $ 180))) 2181 2182(DECLAIM (NOTINLINE |GaloisGroupFactorizer;|)) 2183 2184(DEFUN |GaloisGroupFactorizer| (#1=#:G937) 2185 (SPROG NIL 2186 (PROG (#2=#:G938) 2187 (RETURN 2188 (COND 2189 ((LETT #2# 2190 (|lassocShiftWithFunction| (LIST (|devaluate| #1#)) 2191 (HGET |$ConstructorCache| 2192 '|GaloisGroupFactorizer|) 2193 '|domainEqualList|)) 2194 (|CDRwithIncrement| #2#)) 2195 ('T 2196 (UNWIND-PROTECT 2197 (PROG1 (|GaloisGroupFactorizer;| #1#) (LETT #2# T)) 2198 (COND 2199 ((NOT #2#) 2200 (HREM |$ConstructorCache| '|GaloisGroupFactorizer|)))))))))) 2201 2202(DEFUN |GaloisGroupFactorizer;| (|#1|) 2203 (SPROG ((|pv$| NIL) ($ NIL) (|dv$| NIL) (DV$1 NIL)) 2204 (PROGN 2205 (LETT DV$1 (|devaluate| |#1|)) 2206 (LETT |dv$| (LIST '|GaloisGroupFactorizer| DV$1)) 2207 (LETT $ (GETREFV 185)) 2208 (QSETREFV $ 0 |dv$|) 2209 (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL))) 2210 (|haddProp| |$ConstructorCache| '|GaloisGroupFactorizer| (LIST DV$1) 2211 (CONS 1 $)) 2212 (|stuffDomainSlots| $) 2213 (QSETREFV $ 6 |#1|) 2214 (SETF |pv$| (QREFELT $ 3)) 2215 (QSETREFV $ 7 5) 2216 (QSETREFV $ 8 8) 2217 (QSETREFV $ 9 'T) 2218 (QSETREFV $ 10 'T) 2219 (QSETREFV $ 11 'T) 2220 $))) 2221 2222(MAKEPROP '|GaloisGroupFactorizer| '|infovec| 2223 (LIST 2224 '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) '|mussertrials| 2225 '|stopmussertrials| '|usesinglefactorbound| 2226 '|tryfunctionaldecomposition| '|useeisensteincriterion| 2227 (|Boolean|) |GALFACT;useEisensteinCriterion?;B;1| 2228 |GALFACT;useEisensteinCriterion;2B;2| 2229 |GALFACT;tryFunctionalDecomposition?;B;3| 2230 |GALFACT;tryFunctionalDecomposition;2B;4| 2231 |GALFACT;useSingleFactorBound?;B;5| 2232 |GALFACT;useSingleFactorBound;2B;6| (|PositiveInteger|) 2233 |GALFACT;stopMusserTrials;Pi;7| |GALFACT;stopMusserTrials;2Pi;8| 2234 |GALFACT;musserTrials;Pi;9| |GALFACT;musserTrials;2Pi;10| 2235 (0 . |reductum|) (|Integer|) (5 . |content|) (10 . |unit?|) 2236 (15 . |leadingCoefficient|) (20 . |zero?|) (|Factored| $) 2237 (25 . |factor|) (|Union| '"nil" '"sqfr" '"irred" '"prime") 2238 (|Record| (|:| |flag| 32) (|:| |factor| 25) (|:| |exponent| 38)) 2239 (|List| 33) (|Factored| 25) (30 . |factorList|) 2240 |GALFACT;eisensteinIrreducible?;UPB;11| (|NonNegativeInteger|) 2241 (35 . |degree|) (|Record| (|:| |factor| 6) (|:| |degree| 25)) 2242 (|List| 40) |GALFACT;numberOfFactors;LNni;12| (40 . +) 2243 (|Mapping| 38 38) (|Set| 38) (46 . |map|) (52 . |One|) 2244 (|List| 38) (56 . |set|) (|SparseUnivariatePolynomial| 25) 2245 (61 . |makeSUP|) (|U32Vector|) (|U32VectorPolynomialOperations|) 2246 (66 . |to_mod_pa|) (72 . |gcd|) (79 . |degree|) 2247 (|ModularDistinctDegreeFactorizer| 6) (84 . |gcd|) (91 . |Zero|) 2248 (95 . |pa_to_sup|) (100 . |unmakeSUP|) (105 . |coerce|) 2249 (110 . ~=) (116 . |invmod|) (|Void|) (122 . |mul_by_scalar|) 2250 (|Mapping| (|List| 52)) 2251 (|Record| (|:| |poly| 52) (|:| |degree| 38) 2252 (|:| |separate_factors| 67)) 2253 (|List| 68) (|ModularFactorization|) (130 . |ddfact|) 2254 (136 . |ddFact|) (|List| 6) (142 . |separateFactors|) 2255 (148 . |empty|) (152 . |differentiate|) 2256 (|IntegerPrimesPackage| 25) (157 . |nextPrime|) (162 . |union|) 2257 (168 . |intersect|) (174 . =) (180 . |#|) 2258 (|Record| (|:| |prime| 25) (|:| |factors| 73)) 2259 |GALFACT;modularFactor;UPSR;22| (|Multiset| 38) (185 . |empty|) 2260 (189 . |insert!|) (195 . |insert!|) 2261 |GALFACT;degreePartition;LM;23| (202 . <=) (208 . |rem|) 2262 (214 . |Zero|) (218 . =) (|Mapping| 12 38) (224 . |select|) 2263 (|BrillhartTests| 6) (230 . |brillhartIrreducible?|) 2264 (|Record| (|:| |left| 6) (|:| |right| 6)) (|Union| 98 '"failed") 2265 (|UnivariatePolynomialDecompositionPackage| 25 6) 2266 (235 . |monicDecomposeIfCan|) 2267 (|GaloisGroupFactorizationUtilities| 25 6 (|Float|)) 2268 (240 . |beauzamyBound|) (|GeneralHenselPackage| 25 6) 2269 (245 . |completeHensel|) (253 . |elt|) (259 . |append|) 2270 (265 . |coefficient|) (271 . |bit?|) (277 . |elt|) 2271 (283 . |symmetricRemainder|) (289 . |member?|) 2272 (|Union| $ '"failed") (295 . |exquo|) (301 . *) 2273 (307 . |reduction|) (313 . |primitivePart|) (318 . |exquo|) 2274 (324 . |swap!|) (331 . |rest|) (337 . |setrest!|) 2275 (343 . |singleFactorBound|) 2276 (|Record| (|:| |plist| 73) (|:| |modulo| 25)) 2277 (349 . |HenselLift|) (357 . |parts|) (362 . |exquo|) 2278 (368 . |max|) (|GaloisGroupPolynomialUtilities| 25 6) 2279 (373 . |reverse|) (378 . -) (383 . |noLinearFactor?|) 2280 (388 . |remove|) (394 . |ground?|) (399 . |subtractIfCan|) 2281 (405 . |setelt!|) (412 . |unit|) 2282 (|Record| (|:| |flag| 32) (|:| |factor| 6) (|:| |exponent| 38)) 2283 (|List| 137) (|Factored| 6) (417 . |makeFR|) 2284 (|Record| (|:| |irr| 6) (|:| |pow| 38)) 2285 (|Record| (|:| |contp| 25) (|:| |factors| 162)) 2286 |GALFACT;makeFR;RF;30| (|Union| 25 '"failed") (|IntegerRoots| 25) 2287 (423 . |perfectSqrt|) (428 . |monomial|) (434 . +) 2288 (440 . |monomial|) (446 . |elt|) (452 . |exquo|) 2289 (458 . |minimumDegree|) 2290 (|Record| (|:| |quotient| $) (|:| |remainder| $)) 2291 (463 . |monicDivide|) (469 . =) (|List| 50) 2292 (|CyclotomicPolynomialPackage|) (475 . |cyclotomicDecomposition|) 2293 (|Mapping| 6 50) (|ListFunctions2| 50 6) (480 . |map|) 2294 (|List| 141) (486 . |append|) (492 . |squareFree|) 2295 (497 . |factorList|) |GALFACT;henselFact;UPBR;34| 2296 |GALFACT;btwFact;UPBSNniR;35| |GALFACT;factor;UPF;36| 2297 |GALFACT;factor;UPLNniF;39| |GALFACT;factor;UPNniF;40| 2298 |GALFACT;factor;UPLF;41| (502 . |new|) 2299 |GALFACT;factor;UP2NniF;42| |GALFACT;factorSquareFree;UPF;43| 2300 |GALFACT;factorSquareFree;UPLNniF;44| 2301 |GALFACT;factorSquareFree;UPNniF;45| 2302 |GALFACT;factorSquareFree;UPLF;46| 2303 |GALFACT;factorSquareFree;UP2NniF;47| (|Union| 6 '"failed") 2304 |GALFACT;factorOfDegree;PiUPLNniBU;48| 2305 |GALFACT;factorOfDegree;PiUPLNniU;49| 2306 |GALFACT;factorOfDegree;PiUPNniU;50| 2307 |GALFACT;factorOfDegree;PiUPLU;51| 2308 |GALFACT;factorOfDegree;PiUPU;52|) 2309 '#(|useSingleFactorBound?| 508 |useSingleFactorBound| 512 2310 |useEisensteinCriterion?| 517 |useEisensteinCriterion| 521 2311 |tryFunctionalDecomposition?| 526 |tryFunctionalDecomposition| 2312 530 |stopMusserTrials| 535 |numberOfFactors| 544 |musserTrials| 2313 549 |modularFactor| 558 |makeFR| 564 |henselFact| 569 2314 |factorSquareFree| 575 |factorOfDegree| 606 |factor| 643 2315 |eisensteinIrreducible?| 674 |degreePartition| 679 |btwFact| 684) 2316 'NIL 2317 (CONS (|makeByteWordVec2| 1 '(0)) 2318 (CONS '#(NIL) 2319 (CONS 2320 '#((|Join| 2321 (|mkCategory| 2322 (LIST 2323 '((|makeFR| 2324 ((|Factored| |#1|) 2325 (|Record| (|:| |contp| (|Integer|)) 2326 (|:| |factors| 2327 (|List| 2328 (|Record| (|:| |irr| |#1|) 2329 (|:| |pow| 2330 (|NonNegativeInteger|)))))))) 2331 T) 2332 '((|degreePartition| 2333 ((|Multiset| (|NonNegativeInteger|)) 2334 (|List| 2335 (|Record| (|:| |factor| |#1|) 2336 (|:| |degree| (|Integer|)))))) 2337 T) 2338 '((|musserTrials| ((|PositiveInteger|))) T) 2339 '((|musserTrials| 2340 ((|PositiveInteger|) (|PositiveInteger|))) 2341 T) 2342 '((|stopMusserTrials| ((|PositiveInteger|))) T) 2343 '((|stopMusserTrials| 2344 ((|PositiveInteger|) (|PositiveInteger|))) 2345 T) 2346 '((|numberOfFactors| 2347 ((|NonNegativeInteger|) 2348 (|List| 2349 (|Record| (|:| |factor| |#1|) 2350 (|:| |degree| (|Integer|)))))) 2351 T) 2352 '((|modularFactor| 2353 ((|Record| (|:| |prime| (|Integer|)) 2354 (|:| |factors| (|List| |#1|))) 2355 |#1| (|Set| (|NonNegativeInteger|)))) 2356 T) 2357 '((|useSingleFactorBound?| ((|Boolean|))) T) 2358 '((|useSingleFactorBound| 2359 ((|Boolean|) (|Boolean|))) 2360 T) 2361 '((|useEisensteinCriterion?| ((|Boolean|))) T) 2362 '((|useEisensteinCriterion| 2363 ((|Boolean|) (|Boolean|))) 2364 T) 2365 '((|eisensteinIrreducible?| ((|Boolean|) |#1|)) 2366 T) 2367 '((|tryFunctionalDecomposition?| ((|Boolean|))) 2368 T) 2369 '((|tryFunctionalDecomposition| 2370 ((|Boolean|) (|Boolean|))) 2371 T) 2372 '((|factor| ((|Factored| |#1|) |#1|)) T) 2373 '((|factor| 2374 ((|Factored| |#1|) |#1| 2375 (|NonNegativeInteger|))) 2376 T) 2377 '((|factor| 2378 ((|Factored| |#1|) |#1| 2379 (|List| (|NonNegativeInteger|)))) 2380 T) 2381 '((|factor| 2382 ((|Factored| |#1|) |#1| 2383 (|List| (|NonNegativeInteger|)) 2384 (|NonNegativeInteger|))) 2385 T) 2386 '((|factor| 2387 ((|Factored| |#1|) |#1| (|NonNegativeInteger|) 2388 (|NonNegativeInteger|))) 2389 T) 2390 '((|factorSquareFree| ((|Factored| |#1|) |#1|)) 2391 T) 2392 '((|factorSquareFree| 2393 ((|Factored| |#1|) |#1| 2394 (|NonNegativeInteger|))) 2395 T) 2396 '((|factorSquareFree| 2397 ((|Factored| |#1|) |#1| 2398 (|List| (|NonNegativeInteger|)))) 2399 T) 2400 '((|factorSquareFree| 2401 ((|Factored| |#1|) |#1| 2402 (|List| (|NonNegativeInteger|)) 2403 (|NonNegativeInteger|))) 2404 T) 2405 '((|factorSquareFree| 2406 ((|Factored| |#1|) |#1| (|NonNegativeInteger|) 2407 (|NonNegativeInteger|))) 2408 T) 2409 '((|factorOfDegree| 2410 ((|Union| |#1| "failed") (|PositiveInteger|) 2411 |#1|)) 2412 T) 2413 '((|factorOfDegree| 2414 ((|Union| |#1| "failed") (|PositiveInteger|) 2415 |#1| (|NonNegativeInteger|))) 2416 T) 2417 '((|factorOfDegree| 2418 ((|Union| |#1| "failed") (|PositiveInteger|) 2419 |#1| (|List| (|NonNegativeInteger|)))) 2420 T) 2421 '((|factorOfDegree| 2422 ((|Union| |#1| "failed") (|PositiveInteger|) 2423 |#1| (|List| (|NonNegativeInteger|)) 2424 (|NonNegativeInteger|))) 2425 T) 2426 '((|factorOfDegree| 2427 ((|Union| |#1| "failed") (|PositiveInteger|) 2428 |#1| (|List| (|NonNegativeInteger|)) 2429 (|NonNegativeInteger|) (|Boolean|))) 2430 T) 2431 '((|henselFact| 2432 ((|Record| (|:| |contp| (|Integer|)) 2433 (|:| |factors| 2434 (|List| 2435 (|Record| (|:| |irr| |#1|) 2436 (|:| |pow| 2437 (|NonNegativeInteger|)))))) 2438 |#1| (|Boolean|))) 2439 T) 2440 '((|btwFact| 2441 ((|Record| (|:| |contp| (|Integer|)) 2442 (|:| |factors| 2443 (|List| 2444 (|Record| (|:| |irr| |#1|) 2445 (|:| |pow| 2446 (|NonNegativeInteger|)))))) 2447 |#1| (|Boolean|) 2448 (|Set| (|NonNegativeInteger|)) 2449 (|NonNegativeInteger|))) 2450 T)) 2451 (LIST) NIL NIL))) 2452 (|makeByteWordVec2| 184 2453 '(1 6 0 0 24 1 6 25 0 26 1 25 12 0 2454 27 1 6 25 0 28 1 6 12 0 29 1 25 2455 30 0 31 1 35 34 0 36 1 6 38 0 39 2456 2 38 0 0 0 43 2 45 0 44 0 46 0 6 2457 0 47 1 45 0 48 49 1 6 50 0 51 2 2458 53 52 50 25 54 3 53 52 52 52 25 2459 55 1 53 25 52 56 3 57 6 6 6 25 58 2460 0 6 0 59 1 53 50 52 60 1 6 0 50 2461 61 1 6 0 25 62 2 25 12 0 0 63 2 2462 25 0 0 0 64 4 53 65 52 25 25 25 2463 66 2 70 69 52 25 71 2 57 41 6 25 2464 72 2 57 73 41 25 74 0 45 0 75 1 6 2465 0 0 76 1 77 25 25 78 2 45 0 0 0 2466 79 2 45 0 0 0 80 2 45 12 0 0 81 1 2467 48 38 0 82 0 85 0 86 2 85 0 38 0 2468 87 3 85 0 38 0 38 88 2 38 12 0 0 2469 90 2 38 0 0 0 91 0 38 0 92 2 38 2470 12 0 0 93 2 45 0 94 0 95 1 96 12 2471 6 97 1 100 99 6 101 1 102 25 6 2472 103 4 104 73 6 73 25 19 105 2 6 0 2473 0 0 106 2 73 0 0 0 107 2 6 25 0 2474 38 108 2 25 12 0 0 109 2 73 6 0 2475 25 110 2 25 0 0 0 111 2 45 12 38 2476 0 112 2 25 113 0 0 114 2 6 0 0 0 2477 115 2 104 6 6 25 116 1 6 0 0 117 2478 2 6 113 0 0 118 3 73 65 0 25 25 2479 119 2 73 0 0 38 120 2 73 0 0 0 2480 121 2 102 25 6 38 122 4 104 123 6 2481 73 25 19 124 1 45 48 0 125 2 38 2482 113 0 0 126 1 45 38 0 127 1 128 6 2483 6 129 1 6 0 0 130 1 96 12 6 131 2 2484 45 0 38 0 132 1 6 12 0 133 2 38 2485 113 0 0 134 3 73 6 0 25 6 135 1 2486 35 25 0 136 2 139 0 6 138 140 1 2487 145 144 25 146 2 6 0 25 38 147 2 2488 6 0 0 0 148 2 50 0 25 38 149 2 50 2489 0 0 0 150 2 6 113 0 25 151 1 6 38 2490 0 152 2 6 153 0 0 154 2 6 12 0 0 2491 155 1 157 156 25 158 2 160 73 159 2492 156 161 2 162 0 0 0 163 1 6 30 0 2493 164 1 139 138 0 165 2 48 0 38 38 2494 172 0 0 12 17 1 0 12 12 18 0 0 12 2495 13 1 0 12 12 14 0 0 12 15 1 0 12 2496 12 16 1 0 19 19 21 0 0 19 20 1 0 2497 38 41 42 1 0 19 19 23 0 0 19 22 2 2498 0 83 6 45 84 1 0 139 142 143 2 0 2499 142 6 12 166 2 0 139 6 38 176 1 0 2500 139 6 174 3 0 139 6 48 38 175 2 0 2501 139 6 48 177 3 0 139 6 38 38 178 2502 2 0 179 19 6 184 3 0 179 19 6 48 2503 183 3 0 179 19 6 38 182 5 0 179 2504 19 6 48 38 12 180 4 0 179 19 6 48 2505 38 181 1 0 139 6 168 2 0 139 6 48 2506 171 2 0 139 6 38 170 3 0 139 6 38 2507 38 173 3 0 139 6 48 38 169 1 0 12 2508 6 37 1 0 85 41 89 4 0 142 6 12 45 2509 38 167))))) 2510 '|lookupComplete|)) 2511