algebramix_doc 0.3
|
00001 00002 #include <numerix/integer.hpp> 00003 #include <numerix/rational.hpp> 00004 #include <numerix/complex.hpp> 00005 #include <basix/vector.hpp> 00006 #include <algebramix/polynomial.hpp> 00007 #include <algebramix/polynomial_polynomial.hpp> 00008 #include <algebramix/polynomial_integer.hpp> 00009 #include <algebramix/polynomial_rational.hpp> 00010 #include <algebramix/polynomial_complex.hpp> 00011 #include <algebramix/polynomial_schonhage.hpp> 00012 #include <basix/tuple.hpp> 00013 #include <basix/glue.hpp> 00014 00015 namespace mmx { 00016 template<typename C> polynomial<C> 00017 polynomial_reverse (const vector<C>& v) { 00018 return polynomial<C> (reverse (v)); } 00019 00020 template<typename C> polynomial<modular<modulus<C>, modular_local> > 00021 as_polynomial_modular (const polynomial<C>& f, const modulus<C>& p) { 00022 modular<modulus<C>, modular_local>::set_modulus (p); 00023 return as<polynomial<modular<modulus<C>, modular_local> > > (f); } 00024 00025 template<typename C> vector<generic> 00026 wrap_subresultants (const polynomial<C>& f, const polynomial<C>& g) { 00027 return as<vector<generic> > (subresultants (f, g)); } 00028 00029 } 00030 namespace mmx { POLYNOMIAL_GENERIC_USES_SCHONHAGE } 00031 00032 namespace mmx { 00033 static polynomial<rational> 00034 GLUE_1 (const tuple<rational> &arg_1) { 00035 return polynomial_reverse (as_vector (arg_1)); 00036 } 00037 00038 static polynomial<rational> 00039 GLUE_2 (const tuple<rational> &arg_1) { 00040 return polynomial<rational > (as_vector (arg_1)); 00041 } 00042 00043 static void 00044 GLUE_3 (const polynomial<rational> &arg_1, const generic &arg_2) { 00045 set_variable_name (arg_1, arg_2); 00046 } 00047 00048 static polynomial<rational> 00049 GLUE_4 (const rational &arg_1) { 00050 return polynomial<rational > (arg_1); 00051 } 00052 00053 static iterator<generic> 00054 GLUE_5 (const polynomial<rational> &arg_1) { 00055 return as<iterator<generic> > (iterate (arg_1)); 00056 } 00057 00058 static int 00059 GLUE_6 (const polynomial<rational> &arg_1) { 00060 return N (arg_1); 00061 } 00062 00063 static int 00064 GLUE_7 (const polynomial<rational> &arg_1) { 00065 return deg (arg_1); 00066 } 00067 00068 static rational 00069 GLUE_8 (const polynomial<rational> &arg_1, const int &arg_2) { 00070 return arg_1[arg_2]; 00071 } 00072 00073 static polynomial<rational> 00074 GLUE_9 (const polynomial<rational> &arg_1) { 00075 return -arg_1; 00076 } 00077 00078 static polynomial<rational> 00079 GLUE_10 (const polynomial<rational> &arg_1) { 00080 return square (arg_1); 00081 } 00082 00083 static polynomial<rational> 00084 GLUE_11 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00085 return arg_1 + arg_2; 00086 } 00087 00088 static polynomial<rational> 00089 GLUE_12 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00090 return arg_1 - arg_2; 00091 } 00092 00093 static polynomial<rational> 00094 GLUE_13 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00095 return arg_1 * arg_2; 00096 } 00097 00098 static polynomial<rational> 00099 GLUE_14 (const rational &arg_1, const polynomial<rational> &arg_2) { 00100 return arg_1 + arg_2; 00101 } 00102 00103 static polynomial<rational> 00104 GLUE_15 (const polynomial<rational> &arg_1, const rational &arg_2) { 00105 return arg_1 + arg_2; 00106 } 00107 00108 static polynomial<rational> 00109 GLUE_16 (const rational &arg_1, const polynomial<rational> &arg_2) { 00110 return arg_1 - arg_2; 00111 } 00112 00113 static polynomial<rational> 00114 GLUE_17 (const polynomial<rational> &arg_1, const rational &arg_2) { 00115 return arg_1 - arg_2; 00116 } 00117 00118 static polynomial<rational> 00119 GLUE_18 (const rational &arg_1, const polynomial<rational> &arg_2) { 00120 return arg_1 * arg_2; 00121 } 00122 00123 static polynomial<rational> 00124 GLUE_19 (const polynomial<rational> &arg_1, const rational &arg_2) { 00125 return arg_1 * arg_2; 00126 } 00127 00128 static polynomial<rational> 00129 GLUE_20 (const polynomial<rational> &arg_1, const int &arg_2) { 00130 return binpow (arg_1, arg_2); 00131 } 00132 00133 static polynomial<rational> 00134 GLUE_21 (const polynomial<rational> &arg_1, const int &arg_2) { 00135 return lshiftz (arg_1, arg_2); 00136 } 00137 00138 static polynomial<rational> 00139 GLUE_22 (const polynomial<rational> &arg_1, const int &arg_2) { 00140 return rshiftz (arg_1, arg_2); 00141 } 00142 00143 static polynomial<rational> 00144 GLUE_23 (const polynomial<rational> &arg_1) { 00145 return derive (arg_1); 00146 } 00147 00148 static polynomial<rational> 00149 GLUE_24 (const polynomial<rational> &arg_1) { 00150 return xderive (arg_1); 00151 } 00152 00153 static rational 00154 GLUE_25 (const polynomial<rational> &arg_1, const rational &arg_2) { 00155 return evaluate (arg_1, arg_2); 00156 } 00157 00158 static vector<rational> 00159 GLUE_26 (const polynomial<rational> &arg_1, const vector<rational> &arg_2) { 00160 return evaluate (arg_1, arg_2); 00161 } 00162 00163 static rational 00164 GLUE_27 (const polynomial<rational> &arg_1, const rational &arg_2) { 00165 return evaluate (arg_1, arg_2); 00166 } 00167 00168 static vector<rational> 00169 GLUE_28 (const polynomial<rational> &arg_1, const vector<rational> &arg_2) { 00170 return evaluate (arg_1, arg_2); 00171 } 00172 00173 static polynomial<rational> 00174 GLUE_29 (const polynomial<rational> &arg_1, const rational &arg_2) { 00175 return arg_1 / arg_2; 00176 } 00177 00178 static polynomial<rational> 00179 GLUE_30 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00180 return arg_1 / arg_2; 00181 } 00182 00183 static polynomial<rational> 00184 GLUE_31 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00185 return quo (arg_1, arg_2); 00186 } 00187 00188 static polynomial<rational> 00189 GLUE_32 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00190 return rem (arg_1, arg_2); 00191 } 00192 00193 static bool 00194 GLUE_33 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00195 return divides (arg_1, arg_2); 00196 } 00197 00198 static polynomial<rational> 00199 GLUE_34 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2, const int &arg_3) { 00200 return subresultant (arg_1, arg_2, arg_3); 00201 } 00202 00203 static vector<generic> 00204 GLUE_35 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00205 return wrap_subresultants (arg_1, arg_2); 00206 } 00207 00208 static rational 00209 GLUE_36 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00210 return resultant (arg_1, arg_2); 00211 } 00212 00213 static rational 00214 GLUE_37 (const polynomial<rational> &arg_1) { 00215 return discriminant (arg_1); 00216 } 00217 00218 static polynomial<rational> 00219 GLUE_38 (const polynomial<rational> &arg_1) { 00220 return integrate (arg_1); 00221 } 00222 00223 static polynomial<rational> 00224 GLUE_39 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00225 return compose (arg_1, arg_2); 00226 } 00227 00228 static polynomial<rational> 00229 GLUE_40 (const polynomial<rational> &arg_1, const rational &arg_2) { 00230 return q_difference (arg_1, arg_2); 00231 } 00232 00233 static polynomial<rational> 00234 GLUE_41 (const polynomial<rational> &arg_1, const int &arg_2) { 00235 return dilate (arg_1, arg_2); 00236 } 00237 00238 static polynomial<rational> 00239 GLUE_42 (const vector<rational> &arg_1) { 00240 return annulator (arg_1); 00241 } 00242 00243 static polynomial<rational> 00244 GLUE_43 (const vector<rational> &arg_1, const vector<rational> &arg_2) { 00245 return interpolate (arg_1, arg_2); 00246 } 00247 00248 static polynomial<rational> 00249 GLUE_44 (const polynomial<rational> &arg_1, const rational &arg_2) { 00250 return shift (arg_1, arg_2); 00251 } 00252 00253 static polynomial<rational> 00254 GLUE_45 (const polynomial<rational> &arg_1) { 00255 return graeffe (arg_1); 00256 } 00257 00258 static rational 00259 GLUE_46 (const polynomial<rational> &arg_1) { 00260 return contents (arg_1); 00261 } 00262 00263 static polynomial<rational> 00264 GLUE_47 (const polynomial<rational> &arg_1) { 00265 return primitive_part (arg_1); 00266 } 00267 00268 static polynomial<rational> 00269 GLUE_48 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00270 return gcd (arg_1, arg_2); 00271 } 00272 00273 static polynomial<rational> 00274 GLUE_49 (const polynomial<rational> &arg_1, const polynomial<rational> &arg_2) { 00275 return lcm (arg_1, arg_2); 00276 } 00277 00278 static polynomial<rational> 00279 GLUE_50 (const polynomial<integer> &arg_1) { 00280 return as<polynomial<rational> > (arg_1); 00281 } 00282 00283 static polynomial<generic> 00284 GLUE_51 (const polynomial<rational> &arg_1) { 00285 return as<polynomial<generic> > (arg_1); 00286 } 00287 00288 static polynomial<complex<rational> > 00289 GLUE_52 (const tuple<complex<rational> > &arg_1) { 00290 return polynomial_reverse (as_vector (arg_1)); 00291 } 00292 00293 static polynomial<complex<rational> > 00294 GLUE_53 (const tuple<complex<rational> > &arg_1) { 00295 return polynomial<complex<rational> > (as_vector (arg_1)); 00296 } 00297 00298 static void 00299 GLUE_54 (const polynomial<complex<rational> > &arg_1, const generic &arg_2) { 00300 set_variable_name (arg_1, arg_2); 00301 } 00302 00303 static polynomial<complex<rational> > 00304 GLUE_55 (const complex<rational> &arg_1) { 00305 return polynomial<complex<rational> > (arg_1); 00306 } 00307 00308 static iterator<generic> 00309 GLUE_56 (const polynomial<complex<rational> > &arg_1) { 00310 return as<iterator<generic> > (iterate (arg_1)); 00311 } 00312 00313 static int 00314 GLUE_57 (const polynomial<complex<rational> > &arg_1) { 00315 return N (arg_1); 00316 } 00317 00318 static int 00319 GLUE_58 (const polynomial<complex<rational> > &arg_1) { 00320 return deg (arg_1); 00321 } 00322 00323 static complex<rational> 00324 GLUE_59 (const polynomial<complex<rational> > &arg_1, const int &arg_2) { 00325 return arg_1[arg_2]; 00326 } 00327 00328 static polynomial<complex<rational> > 00329 GLUE_60 (const polynomial<complex<rational> > &arg_1) { 00330 return -arg_1; 00331 } 00332 00333 static polynomial<complex<rational> > 00334 GLUE_61 (const polynomial<complex<rational> > &arg_1) { 00335 return square (arg_1); 00336 } 00337 00338 static polynomial<complex<rational> > 00339 GLUE_62 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00340 return arg_1 + arg_2; 00341 } 00342 00343 static polynomial<complex<rational> > 00344 GLUE_63 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00345 return arg_1 - arg_2; 00346 } 00347 00348 static polynomial<complex<rational> > 00349 GLUE_64 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00350 return arg_1 * arg_2; 00351 } 00352 00353 static polynomial<complex<rational> > 00354 GLUE_65 (const complex<rational> &arg_1, const polynomial<complex<rational> > &arg_2) { 00355 return arg_1 + arg_2; 00356 } 00357 00358 static polynomial<complex<rational> > 00359 GLUE_66 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00360 return arg_1 + arg_2; 00361 } 00362 00363 static polynomial<complex<rational> > 00364 GLUE_67 (const complex<rational> &arg_1, const polynomial<complex<rational> > &arg_2) { 00365 return arg_1 - arg_2; 00366 } 00367 00368 static polynomial<complex<rational> > 00369 GLUE_68 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00370 return arg_1 - arg_2; 00371 } 00372 00373 static polynomial<complex<rational> > 00374 GLUE_69 (const complex<rational> &arg_1, const polynomial<complex<rational> > &arg_2) { 00375 return arg_1 * arg_2; 00376 } 00377 00378 static polynomial<complex<rational> > 00379 GLUE_70 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00380 return arg_1 * arg_2; 00381 } 00382 00383 static polynomial<complex<rational> > 00384 GLUE_71 (const polynomial<complex<rational> > &arg_1, const int &arg_2) { 00385 return binpow (arg_1, arg_2); 00386 } 00387 00388 static polynomial<complex<rational> > 00389 GLUE_72 (const polynomial<complex<rational> > &arg_1, const int &arg_2) { 00390 return lshiftz (arg_1, arg_2); 00391 } 00392 00393 static polynomial<complex<rational> > 00394 GLUE_73 (const polynomial<complex<rational> > &arg_1, const int &arg_2) { 00395 return rshiftz (arg_1, arg_2); 00396 } 00397 00398 static polynomial<complex<rational> > 00399 GLUE_74 (const polynomial<complex<rational> > &arg_1) { 00400 return derive (arg_1); 00401 } 00402 00403 static polynomial<complex<rational> > 00404 GLUE_75 (const polynomial<complex<rational> > &arg_1) { 00405 return xderive (arg_1); 00406 } 00407 00408 static complex<rational> 00409 GLUE_76 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00410 return evaluate (arg_1, arg_2); 00411 } 00412 00413 static vector<complex<rational> > 00414 GLUE_77 (const polynomial<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) { 00415 return evaluate (arg_1, arg_2); 00416 } 00417 00418 static complex<rational> 00419 GLUE_78 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00420 return evaluate (arg_1, arg_2); 00421 } 00422 00423 static vector<complex<rational> > 00424 GLUE_79 (const polynomial<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) { 00425 return evaluate (arg_1, arg_2); 00426 } 00427 00428 static polynomial<complex<rational> > 00429 GLUE_80 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00430 return arg_1 / arg_2; 00431 } 00432 00433 static polynomial<complex<rational> > 00434 GLUE_81 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00435 return arg_1 / arg_2; 00436 } 00437 00438 static polynomial<complex<rational> > 00439 GLUE_82 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00440 return quo (arg_1, arg_2); 00441 } 00442 00443 static polynomial<complex<rational> > 00444 GLUE_83 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00445 return rem (arg_1, arg_2); 00446 } 00447 00448 static bool 00449 GLUE_84 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00450 return divides (arg_1, arg_2); 00451 } 00452 00453 static polynomial<complex<rational> > 00454 GLUE_85 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2, const int &arg_3) { 00455 return subresultant (arg_1, arg_2, arg_3); 00456 } 00457 00458 static vector<generic> 00459 GLUE_86 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00460 return wrap_subresultants (arg_1, arg_2); 00461 } 00462 00463 static complex<rational> 00464 GLUE_87 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00465 return resultant (arg_1, arg_2); 00466 } 00467 00468 static complex<rational> 00469 GLUE_88 (const polynomial<complex<rational> > &arg_1) { 00470 return discriminant (arg_1); 00471 } 00472 00473 static polynomial<complex<rational> > 00474 GLUE_89 (const polynomial<complex<rational> > &arg_1) { 00475 return integrate (arg_1); 00476 } 00477 00478 static polynomial<complex<rational> > 00479 GLUE_90 (const polynomial<complex<rational> > &arg_1, const polynomial<complex<rational> > &arg_2) { 00480 return compose (arg_1, arg_2); 00481 } 00482 00483 static polynomial<complex<rational> > 00484 GLUE_91 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00485 return q_difference (arg_1, arg_2); 00486 } 00487 00488 static polynomial<complex<rational> > 00489 GLUE_92 (const polynomial<complex<rational> > &arg_1, const int &arg_2) { 00490 return dilate (arg_1, arg_2); 00491 } 00492 00493 static polynomial<complex<rational> > 00494 GLUE_93 (const vector<complex<rational> > &arg_1) { 00495 return annulator (arg_1); 00496 } 00497 00498 static polynomial<complex<rational> > 00499 GLUE_94 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) { 00500 return interpolate (arg_1, arg_2); 00501 } 00502 00503 static polynomial<complex<rational> > 00504 GLUE_95 (const polynomial<complex<rational> > &arg_1, const complex<rational> &arg_2) { 00505 return shift (arg_1, arg_2); 00506 } 00507 00508 static polynomial<complex<rational> > 00509 GLUE_96 (const polynomial<complex<rational> > &arg_1) { 00510 return graeffe (arg_1); 00511 } 00512 00513 static polynomial<complex<rational> > 00514 GLUE_97 (const polynomial<integer> &arg_1) { 00515 return as<polynomial<complex<rational> > > (arg_1); 00516 } 00517 00518 static polynomial<complex<rational> > 00519 GLUE_98 (const polynomial<rational> &arg_1) { 00520 return as<polynomial<complex<rational> > > (arg_1); 00521 } 00522 00523 static polynomial<generic> 00524 GLUE_99 (const polynomial<complex<rational> > &arg_1) { 00525 return as<polynomial<generic> > (arg_1); 00526 } 00527 00528 void 00529 glue_polynomial_rational () { 00530 static bool done = false; 00531 if (done) return; 00532 done = true; 00533 call_glue (string ("glue_vector_rational")); 00534 call_glue (string ("glue_polynomial_integer")); 00535 define_type<polynomial<rational> > (gen (lit ("Polynomial"), lit ("Rational"))); 00536 define ("poly", GLUE_1); 00537 define ("polynomial", GLUE_2); 00538 define ("set_variable_name", GLUE_3); 00539 define_converter ("upgrade", GLUE_4, PENALTY_INCLUSION); 00540 define_converter (":>", GLUE_5, PENALTY_CAST); 00541 define ("#", GLUE_6); 00542 define ("deg", GLUE_7); 00543 define (".[]", GLUE_8); 00544 define ("-", GLUE_9); 00545 define ("square", GLUE_10); 00546 define ("+", GLUE_11); 00547 define ("-", GLUE_12); 00548 define ("*", GLUE_13); 00549 define ("+", GLUE_14); 00550 define ("+", GLUE_15); 00551 define ("-", GLUE_16); 00552 define ("-", GLUE_17); 00553 define ("*", GLUE_18); 00554 define ("*", GLUE_19); 00555 define ("^", GLUE_20); 00556 define ("<<", GLUE_21); 00557 define (">>", GLUE_22); 00558 define ("derive", GLUE_23); 00559 define ("xderive", GLUE_24); 00560 define ("eval", GLUE_25); 00561 define ("eval", GLUE_26); 00562 define ("evaluate", GLUE_27); 00563 define ("evaluate", GLUE_28); 00564 define ("/", GLUE_29); 00565 define ("div", GLUE_30); 00566 define ("quo", GLUE_31); 00567 define ("rem", GLUE_32); 00568 define ("divides?", GLUE_33); 00569 define ("subresultant", GLUE_34); 00570 define ("subresultants", GLUE_35); 00571 define ("resultant", GLUE_36); 00572 define ("discriminant", GLUE_37); 00573 define ("integrate", GLUE_38); 00574 define ("@", GLUE_39); 00575 define ("q_difference", GLUE_40); 00576 define ("dilate", GLUE_41); 00577 define ("annulator", GLUE_42); 00578 define ("interpolate", GLUE_43); 00579 define ("shift", GLUE_44); 00580 define ("graeffe", GLUE_45); 00581 define ("contents", GLUE_46); 00582 define ("primitive_part", GLUE_47); 00583 define ("gcd", GLUE_48); 00584 define ("lcm", GLUE_49); 00585 define_converter (":>", GLUE_50, PENALTY_INCLUSION); 00586 define_converter (":>", GLUE_51, PENALTY_PROMOTE_GENERIC); 00587 define_type<polynomial<complex<rational> > > (gen (lit ("Polynomial"), gen (lit ("Complex"), lit ("Rational")))); 00588 define ("poly", GLUE_52); 00589 define ("polynomial", GLUE_53); 00590 define ("set_variable_name", GLUE_54); 00591 define_converter ("upgrade", GLUE_55, PENALTY_INCLUSION); 00592 define_converter (":>", GLUE_56, PENALTY_CAST); 00593 define ("#", GLUE_57); 00594 define ("deg", GLUE_58); 00595 define (".[]", GLUE_59); 00596 define ("-", GLUE_60); 00597 define ("square", GLUE_61); 00598 define ("+", GLUE_62); 00599 define ("-", GLUE_63); 00600 define ("*", GLUE_64); 00601 define ("+", GLUE_65); 00602 define ("+", GLUE_66); 00603 define ("-", GLUE_67); 00604 define ("-", GLUE_68); 00605 define ("*", GLUE_69); 00606 define ("*", GLUE_70); 00607 define ("^", GLUE_71); 00608 define ("<<", GLUE_72); 00609 define (">>", GLUE_73); 00610 define ("derive", GLUE_74); 00611 define ("xderive", GLUE_75); 00612 define ("eval", GLUE_76); 00613 define ("eval", GLUE_77); 00614 define ("evaluate", GLUE_78); 00615 define ("evaluate", GLUE_79); 00616 define ("/", GLUE_80); 00617 define ("div", GLUE_81); 00618 define ("quo", GLUE_82); 00619 define ("rem", GLUE_83); 00620 define ("divides?", GLUE_84); 00621 define ("subresultant", GLUE_85); 00622 define ("subresultants", GLUE_86); 00623 define ("resultant", GLUE_87); 00624 define ("discriminant", GLUE_88); 00625 define ("integrate", GLUE_89); 00626 define ("@", GLUE_90); 00627 define ("q_difference", GLUE_91); 00628 define ("dilate", GLUE_92); 00629 define ("annulator", GLUE_93); 00630 define ("interpolate", GLUE_94); 00631 define ("shift", GLUE_95); 00632 define ("graeffe", GLUE_96); 00633 define_converter (":>", GLUE_97, PENALTY_INCLUSION); 00634 define_converter (":>", GLUE_98, PENALTY_INCLUSION); 00635 define_converter (":>", GLUE_99, PENALTY_PROMOTE_GENERIC); 00636 } 00637 }