<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # F.8\. cube 這個模塊為了表示多維立方體實現了數據類型`cube`。 ## F.8.1\. 語法 [Table F-1](#calibre_link-2159)為`cube`類型顯示有效外部表示。 `_x_`, `_y_`等表示浮點數。 **Table F-1\. Cube外部表示** | `_x_` | 一維點(或者,零長度一維間隔) | |:--- |:--- | | `(``_x_`) | 同上 | | `_x1_`,`_x2_`,...,`_xn_` | n維空間點,內部表示為零體積立方體 | | `(``_x1_`,`_x2_`,...,`_xn_`) | 同上 | | `(``_x_`),(`_y_`) | 一維間隔起始于`_x_`并且結束于`_y_`或者反之亦然; 順序并不重要 | | `[(``_x_`),(`_y_`)] | 同上 | | `(``_x1_`,...,`_xn_`),(`_y1_`,...,`_yn_`) | 一個n維立方體通過一對斜對角線地對立角表示 | | `[(``_x1_`,...,`_xn_`),(`_y1_`,...,`_yn_`)] | 同上 | 它無關立方體的相對角進入的哪個順序。 如果需要創建一個統一的"左下 — 右上"內部表示, 該`cube`函數自動交換值。 忽略空格,因此`[(``_x_`),(`_y_`)]和 `[ (` `_x_` ), ( `_y_` ) ]是一樣的。 ## F.8.2\. 精確度 值內部被存儲為64位浮點數。 這意味著超過16位有效數字將被截斷。 ## F.8.3\. 用法 `cube`模塊包含`cube`值的GiST索引操作類。 通過GiST操作符類支持的操作符顯示在[Table F-2](#calibre_link-2160)中。 **Table F-2\. Cube GiST 運算符** | 運算符 | 描述 | | --- | --- | | `a = b` | 立方體a和b是相同的。 | | `a && b` | 立方體a和b重疊 | | `a @&gt; b` | 立方體a包含立方體b。 | | `a &lt;@ b` | 立方體a被包含在立方體b中。 | (PostgreSQL 8.2之前, 包含操作符`@&gt;`和`&lt;@`分別稱為 `@`和`~`。 這些名字仍然可用,但是被否決并且最終被廢棄。 請注意舊的名稱從先前遵循核心幾何數據類型的規定中被反轉!) 提供標準B樹運算符,比如 | 運算符 | 描述 | | --- | --- | | `[a, b] &lt; [c, d]` | 小于 | | `[a, b] &gt; [c, d]` | 大于 | 這些操作符沒有任何實際目的意義但排序。 這些操作符首先比較(a)和(c),如果是相等的, 那么比較(b)和(d)。 導致在某些情況下合理排序, 如果你想使用這種類型的ORDER BY,那么它是有用的。 [Table F-3](#calibre_link-2161)顯示可用函數。 **Table F-3\. Cube函數** | `cube(float8)返回cube` | 兩個坐標相同的一維立方體。 `cube(1) == '(1)'` | |:--- |:--- | | `cube(float8, float8)返回cube` | 一維立方體。 `cube(1,2) == '(1),(2)'` | | `cube(float8[])返回cube` | 使用數組定義的坐標的零體積立方體。 `cube(ARRAY[1,2]) == '(1,2)'` | | `cube(float8[], float8[])返回cube` | 通過兩個數組定義的右上和左下坐標的立方體,必須是相同長度。 `cube('{1,2}'::float[], '{3,4}'::float[]) == '(1,2),(3,4)'` | | `cube(cube, float8)返回cube` | 通過添加一個維度到新坐標兩個部分相同值的已存在立方體來構建一個新的立方體 這對于逐漸地從計算值建構立方體是有用的。 `cube('(1)',2) == '(1,2),(1,2)'` | | `cube(cube, float8, float8)返回cube` | 通過添加一個維度到已存在立方體上構建一個新的立方體。 這對于逐漸地從計算值建構立方體是有用的。 `cube('(1,2)',3,4) == '(1,3),(2,4)'` | | `cube_dim(cube)返回int` | 返回立方體的維數 | | `cube_ll_coord(cube, int)返回double` | 返回立方體左下角的第n個坐標值 | | `cube_ur_coord(cube, int)返回double` | 返回立方體右上角的第n個坐標值 | | `cube_is_point(cube)返回bool` | 如果cube是一點,那么返回真。也就是說,兩個定義的角是一樣的。 | | `cube_distance(cube, cube)返回double` | 返回兩個立方體之間的距離。 如果兩個立方體是點,那么這是一個正常距離函數。 | | `cube_subset(cube, int[])返回cube` | 從一個已經存在立方體構建新的立方體,使用來自數組的維度索引列表。 可以用于查找單維的LL和UR坐標,比如, `cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[2]) = '(3),(7)'`. 或者可以用于降低維度,或者按照需要重新排序它們,比如 `cube_subset(cube('(1,3,5),(6,7,8)'), ARRAY[3,2,1,1]) = '(5, 3, 1, 1),(8, 7, 6, 6)'`. | | `cube_union(cube, cube)返回cube` | 產生兩個立方體并集 | | `cube_inter(cube, cube)返回cube` | 產生兩個立方體交集 | | `cube_enlarge(cube c, double r, int n)返回cube` | 通過至少n維的指定半徑增加立方體大小。 如果半徑是負數立方體反而縮減。 在點周圍搜索臨近點創建邊界區域是很有用的。 所有定義維數通過半徑r來改變。 LL坐標減少了r,UR坐標增加了r。 如果LL坐標增加到可以大于相應的UR坐標(當r &lt; 0時,這可以發生) 比起兩個坐標系被設置為平均來說, 如果n大于定義維度數,并且立方體正被增加(r &gt;= 0), 然后使用0作為額外坐標基礎。 | ## F.8.4\. 缺省 我相信這個聯合: ``` select cube_union('(0,5,2),(2,3,1)', '0'); cube_union ------------------- (0, 0, 0),(2, 5, 2) (1 row) ``` 不違背常識,也不違背交集 ``` select cube_inter('(0,-1),(1,1)', '(-2),(2)'); cube_inter ------------- (0, 0),(1, 0) (1 row) ``` 在不同的維度立方體的所有二進制運算中,我認為降低笛卡爾積投影維數,比如, 在字符串表示中忽略坐標的地方歸零。上面例子等同于: ``` cube_union('(0,5,2),(2,3,1)','(0,0,0),(0,0,0)'); cube_inter('(0,-1),(1,1)','(-2,0),(2,0)'); ``` 下面的包含謂詞使用point語法, 而實際上第二個參數通過box內部表示。 這個語法沒必要定義單獨的point類型 以及(box,point)謂詞函數。 ``` select cube_contains('(0,0),(1,1)', '0.5,0.5'); cube_contains -------------- t (1 row) ``` ## F.8.5\. 注意 對于用法實例,參閱回歸測試`sql/cube.sql`。 為了使人們突破該事物更加難, 在立方體維度數量上有100的限制。 如果你需要大一些的, 可以在`cubedata.h`中設置。 ## F.8.6\. 贊揚 原作者:Gene Selkov, Jr. `&lt;[selkovjr@mcs.anl.gov](mailto:selkovjr@mcs.anl.gov)&gt;`, 數學和計算機科學系,Argonne國家實驗室。 首先感謝 Prof. Joe Hellerstein([http://db.cs.berkeley.edu/jmh/](http://db.cs.berkeley.edu/jmh/)) 闡明GiST ([http://gist.cs.berkeley.edu/](http://gist.cs.berkeley.edu/))的要點, 和他以前的學生Andy Dong ([http://best.me.berkeley.edu/~adong/](http://best.me.berkeley.edu/~adong/)), 比如書面說明例子,[http://best.berkeley.edu/~adong/rtree/index.html](http://best.berkeley.edu/~adong/rtree/index.html)。 我還要感謝所有現在的和以前的Postgres開發人員,使我可以創造我的世界并且在這個領域生存。 并且我還想要感謝Argonne Lab和能源 U.S. Department對我的數據庫研究多年的忠實支持。 這個包較小更新是由Bruno Wolff III `&lt;[bruno@wolff.to](mailto:bruno@wolff.to)&gt;`在2002年八月/九月完成的。 這些包含從單精度到雙精度改變精度以及添加一些新的函數。 額外更新是由Joshua Reich `&lt;[josh@root.net](mailto:josh@root.net)&gt;`在2006年7月進行的。 這些包含`cube(float8[], float8[])`并且 使用V1調用協議而不是過時的V0協議來清理代碼。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看