Lazard's method(その2)

2017年に続いて,2020年に発表された Brown と McCallum の論文 "Enhancements to Lazard’s Method for Cylindrical Algebraic Decomposition" https://rdcu.be/ciEY8 の主結果は次の通りです.

Lazard method の projection set に trailing coefficient を含めるのは,全ての係数が 0 となる実数の組が無限にある場合のみでよく,有限個の場合は,空でないなら,それら全てを sample point として lifting phase において順次追加し,空なら,何もしなくてよい.

このブログで最近公開している C.A.D. のうち (BM20) の表示があるものは,この結果を採用した実装による出力であり,上記の実数の組の集合が空でない場合に,それらを特定する方法,つまり,整数係数の多変数多項式系の実数の零点集合の有限性の判定法,更に(空でない)有限の場合にそれらを零点にもつ性質の良い多項式系を求める処理を含んでいます.

具体的には「Singular の realrad 関数を用いたもの」と「C.A.D. 自体を再帰的に呼び出すもの」の 2 つを実装しており,positive/zero-dimensional 多項式系の実数の零点を統合して扱う目的からすれば前者で十分なのですが,realrad の作動は速いとは云えず,時に帰ってきません.後者は過剰性能であり,またファイルによるデータの授受を繰り返すことから問題を選びます.