From d362203da8828f66cddaec30a6e79d0c1a00508b Mon Sep 17 00:00:00 2001 From: Huite Date: Wed, 17 Jul 2024 09:27:04 +0000 Subject: [PATCH] deploy: 41953fe1073f2e2ea7bb0ab3d27bc1a7d6dd7cf6 --- .buildinfo | 2 +- .doctrees/api.doctree | Bin 71883 -> 71799 bytes .doctrees/environment.pickle | Bin 230700 -> 48117 bytes .doctrees/examples/sg_execution_times.doctree | Bin 8193 -> 8193 bytes .doctrees/examples/spatial_indexing.doctree | Bin 51294 -> 51294 bytes .doctrees/sg_execution_times.doctree | Bin 8202 -> 8202 bytes .../examples_python.zip | Bin 12468 -> 12469 bytes .../spatial_indexing.py | 1 + .../examples_jupyter.zip | Bin 16680 -> 16680 bytes _modules/index.html | 2 +- _modules/numba_celltree/celltree.html | 12 +-- _sources/examples/sg_execution_times.rst.txt | 4 +- _sources/examples/spatial_indexing.rst.txt | 71 +++++++++--------- _sources/sg_execution_times.rst.txt | 4 +- _static/searchtools.js | 7 +- api.html | 2 +- examples/index.html | 2 +- examples/sg_execution_times.html | 6 +- examples/spatial_indexing.html | 6 +- genindex.html | 2 +- index.html | 5 +- py-modindex.html | 2 +- search.html | 2 +- searchindex.js | 2 +- sg_execution_times.html | 6 +- 25 files changed, 71 insertions(+), 67 deletions(-) diff --git a/.buildinfo b/.buildinfo index 09a9f92..a45b577 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 78bfbccb42ead2c17534c3edc9d79023 +config: c21e735eab84c3aa0e238b171d1ab8ac tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/api.doctree b/.doctrees/api.doctree index 423faaa4e5ab9af9ab1740fa9cffa8df7f9a446f..288d0b7a67f0c77ac90f792846eb9d5b166d0c85 100644 GIT binary patch delta 350 zcmX@Tk>&da7M2FqsZ1MLSY;V?Hgm~t)?~`inY`eU`lJULn*-gAnIK%X&Fej-cqZ?> zC^C871ewkMLM!>9>Lx!qwS2Qznlm#@;f~DXoKS^In|BpI=7TESe6r~kT+zL@?O;Wl z*G)(ffhdrgoaU`CIZs=7a~(^1@7~>2|#&BrBsBhoH&DhBVGI4qwALEM2 O$Ipsvm*Hnz&j|pHRhCu& delta 406 zcmeyqf#vi@7M2FqsVo~=SY;WjH*?8u)@02xWn*BNyzrd*=4WoRnV{UpO!dvHJSBNJ z!Lk{0-i(uLC+KYc99qfGn$^nz)i5>n6*GjpxiRxC=j5N!+>`4k7;Iir{Fsk5%aI$Z zY(o=B8JG()_i)=bPEIfvWbWqL2_+(|Szmd9iW@VfHuEku2kM1#)i>vE-Uw6-;(`?` z?akt4%?c8Nn!NQC$YcJ~v}06EGBke2@*(|L`*IV9TfmvA6HwW8BXP0MXfv A7ytkO diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index fbbd50e6ed41cb7891ea8a8645dcfddceba5856d..1517963fc3be4a6c8130d207d730222088a11725 100644 GIT binary patch delta 14164 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 literal 230700 zcmeEv34k0&d9HQuu5MYj9!>~>+{eqy@rd8||5er9)zjU( z-8(DE1c7I}tE#K3{=5GFuj*GVdFvGyEVzLFx$B%pxl)_TTeXvwX1z9P)mj~Q&AxV} zS~?IYdP`^M)t$#WgYF`;(ddl21EqSg)wHZqrP*=U%RbtzN;O|-n5}ZPGS+eX3P)Pa zdvVu!3m#lB(s37;>yuW;UD|BdY8D<`e5&3&(Q#MR+LL2up=edB)Mux>%3X~99keWr z(MUROe_p=O>9jicp~7hv>D}f2!SX$UO9M8{nzN2czV?iUr_ zbe1?)tIZR#rdn3bsnlyu=NN|T!DXtIH`}c`Uf*#qRKP;v$%=KVSTA8Zs{^IfP;XZ= z8}+JHuXWtZM7zR-S*=>l>HLIMQ`a5K?W>x#iMBa`4i{Qzy`l!_ItB3zAik{8tlL%* z*jY77;4=0raJfq{z;Ye%TzOZ!(z1+w^?J*hG&}BE`Anf$Z%j8U6J)3TZcM%j`|tz=CR zCDhx^qE&F(W`$r?A?)mEVik^t~Fn57ct zSS!-h@Pa0|uWZpQPP=QUZn9o#1Goe*+ zebTG|u~*`m$-+2bU#qvQLemtLqJcIlz2X%bIKela|9`f(Yj65fTa`LL`ikKp4@*LHIV` zs7zHxAg`Pe`L+>=n~}yec%ZgDzjfP)1188}LMOmY4k}7!%an{%0DSQ_@f%fBtWP%T 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,_*gOcM@gxUorr%jw}2 z>ktMc$6v4*g3p?QpkW_hc&tDNoTH$P8fu`*9L(0qt6w+LmF=I{hu zCS-JT2#_1H!UT~J7l;6^)3FyUM6v}!VT8aMQNo2<14*+Oodt~tPydDE2&lIT9;=b( z7-L+=9*c14YOg>J;0$6T(+#sGr2EBW)IsA3Uke-U9N+|9u<;DdC6;O;1mLUn)9w-* ztDY9oXg@p_GBNV?aJ+a)mT0X~;zs!GR0W zneeC{fmH7%Cvk+ZnO{ax+;NC-0B1v>So+0EIbt^?hqxE{$boPLK*%{l+GK@9W3vd% z@S;l@NK8Q-ZUTr`gp~Gb2pb|GPlQ8-0NaS1BXke;6euRa0MojH6$82RrLV&6%Wp0e z=s(aY!`f>?bVUwXwmn6JwVW%z82{~gtW&-Xc?s)7WJMyCX=`b#(jquM*0KK)BG+AW zMDUlP_zTd#EJ}LO>H%xRGa$rfk%eCQVt0iMHnLrdg(SnVErVLYFkJclkAZLzoeUVX zgXO{Ukh=)ccvO`)mv69d0iok^xSX@MiOYO>L|twvZ&eMp`Ip<#Rz9|4R9#(HzFuAK zEZ?XuZ!X`WE_Y!X(j!Oje&HEaacghe*qgCF)Xe7LNJO-;K%gY5 z@(o-jBEl**-zi_ur80!w9z#HZ0&%jjDE7lE2qx025yj=dZK)$I zJIn72=BE!XQkNg_0Qf8s{SiqLjJY) z^1tz}{?>cu@4TzO_pbh-{Ew=i@0I^UT|TGkZA$O77toIo!uCR3tG?|;RIxZvy9C$J zJdh3cQe1l7EaP(3M<3mNRNeLCPO-2(fEzV&dpU0G74#!tzLKt21qxQv^_oDzg>=0> zP;d#Z)p)%C(>7_sbX1MKA<)de6gQ{s1FUuI%YrwTo5 z;_!f z!}#I594>XBRNZnwJILw7Gycel~qUUj#R?)Iy@+i`Jl0e5(SE?>ZxchKb$zPuBcV$OHr z%Dx*vTz(K2Lwt1zS6+;SOYT95cxF^xx&0L5;2b(wj)OobWxDwYg;Og^>Y;7<2J_$o zg~Y??PeA%!b%iBARzz_8!hFR7M&>PeGKhl|96kwCRA>OuWjENX7Qr06>Tu1Xu#sg1 zTyREx+`#%qWDu{sr{WMPnl%Ki92m`l#9o3i+4tdxp>Txmj;g!+aUo#x0F}Q~l|P6J zF{77xEq;hvJVZZ|r(RCi#{vbfz_rp@c7ZC62Wrh=?HE-Q1GOc(wgLs?bUhI$XyDqD zOb=5XHmo}a>vnBcT`^+>S6qg1SB`oqDS$AZls57f99`F?Ea zwU4xC+mLmi{1~oBWi5QJUUUI&e^5fHO}XS3 zGSw;rDkt*3RgX^uI8d&ZuUm12t|SiUG%0LjZ>|Cah?r2uBBE^GyaVwOua(H4J*IlH&tL-flk_7&`8v9G z0|l?gwVJQH2632Bd?93qQXVunA*{WD`gtRMn5&+`g{QsV6u5C$%a}o|b*r@Ln*&eT zZ^4b-p&zMh-%8hS3lzMauAinK$&K%z>vskU-bL5%4ivnHuHPFdcpt7ketkbx{FgxO zkJI%}1PXqVu74^}@Y8htfk43r>H0%~f)C@`d&5V9Hy_1~$6p`AjnIN0r(y=_C#W@F z{YAU2>5IXeUkyI&q8orG48IP>gV_kSoj4 zHei%*b1BV>V`=c647!&qKi~+QJJys{M0^mQOmf@7+5HkvJj? z;5HPV#V-G22cB(?G9qY5-T@ZAl+(5hJ@U2?`}L$r`?)7k@CGWlxO*6))}>nIOn1Zx zM9mwi<|=RM+iyVwn?`DP=!ZsS zzm4}^#1v`Q#0Ukx*IBmN#axEslZGKfwtaPWgj9fjX)omP%KHMnZwhLU31n zLkZjDodcs#)RD41$YDs?BMTAJcUKBWBsuue5-v9wYuMhfhQhw^Gtx#IcozWRGwwx2 zv_hZ-iIG)A(@NxJW)JF$2DYJ)s^Ay|rE`jWY7{$guhU+bJf%frl|e1NkOf7cRy4

H~+6dXE)Du0Y^|Y!|)6y@?``lG{fYoC(qa`? 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 SHufnzA|_^7RK$s_;RXQ6{}+A$ delta 82 zcmeBj=yKSQ$i!l9tfe(sidk`T8aft7)Qp1Ha4=9^5nS(t$I SHufnzBId?eRK$s_;RXQ75f^>{ diff --git a/_downloads/bc82bea3a5dd7bdba60b65220891d9e5/examples_python.zip b/_downloads/bc82bea3a5dd7bdba60b65220891d9e5/examples_python.zip index 0a702e980878d93cb9f0ae975922743f89b77d94..b4cb24b14aa801d65b185ff5cde9825eca6a0dca 100644 GIT binary patch delta 62 zcmdmzxHVBcz?+#xgaHH+ygx?dPOdwlYrw#uyHQ+$WwRNJu?{ba@Z>TB3${3*0tN;E DFS!uQ delta 62 zcmdm*xFu0Mz?+#xgaHIH0^UR{=l`y*W5B?mvr$}uWwQl~kq$44@Z@p>3$|FG0tN;E D7?uz8 diff --git a/_downloads/f989545cc7034bd6c0c40e2091705820/spatial_indexing.py b/_downloads/f989545cc7034bd6c0c40e2091705820/spatial_indexing.py index cc7eab2..37cf2d4 100644 --- a/_downloads/f989545cc7034bd6c0c40e2091705820/spatial_indexing.py +++ b/_downloads/f989545cc7034bd6c0c40e2091705820/spatial_indexing.py @@ -24,6 +24,7 @@ We'll start by importing the required packages with matplotlib for plotting. """ + import os import matplotlib.pyplot as plt diff --git a/_downloads/fb625db3c50d423b1b7881136ffdeec8/examples_jupyter.zip b/_downloads/fb625db3c50d423b1b7881136ffdeec8/examples_jupyter.zip index d5d40a8d42ec382ed27a73d0aff743c8bf623b4d..d3a5716a5669fa679941dd487095bf7afd38ae24 100644 GIT binary patch delta 32 kcmZ3{#JHk~kvG7bnMH&F1QNYJZsa}dzzn1(-*xZ?0FcQF9RL6T delta 32 kcmZ3{#JHk~kvG7bnMH&F1Tq8OY~(%bzzn1(-*xZ?0Fi?VEdT%j diff --git a/_modules/index.html b/_modules/index.html index a3e3996..ad7cf27 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -427,7 +427,7 @@

All modules for which code is available

diff --git a/_modules/numba_celltree/celltree.html b/_modules/numba_celltree/celltree.html index 4b350b6..df7e600 100644 --- a/_modules/numba_celltree/celltree.html +++ b/_modules/numba_celltree/celltree.html @@ -383,14 +383,14 @@

Source code for numba_celltree.celltree

 
 import numpy as np
 
-from .algorithms import (
+from numba_celltree.algorithms import (
     area_of_intersection,
     barycentric_triangle_weights,
     barycentric_wachspress_weights,
     box_area_of_intersection,
     polygons_intersect,
 )
-from .constants import (
+from numba_celltree.constants import (
     FILL_VALUE,
     MAX_N_FACE,
     MAX_N_VERTEX,
@@ -401,9 +401,9 @@ 

Source code for numba_celltree.celltree

     IntArray,
     IntDType,
 )
-from .creation import initialize
-from .geometry_utils import build_bboxes, counter_clockwise
-from .query import (
+from numba_celltree.creation import initialize
+from numba_celltree.geometry_utils import build_bboxes, counter_clockwise
+from numba_celltree.query import (
     collect_node_bounds,
     locate_boxes,
     locate_edges,
@@ -874,7 +874,7 @@ 

Source code for numba_celltree.celltree

         
diff --git a/_sources/examples/sg_execution_times.rst.txt b/_sources/examples/sg_execution_times.rst.txt
index d2e185e..40de308 100644
--- a/_sources/examples/sg_execution_times.rst.txt
+++ b/_sources/examples/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:00.773** total execution time for 1 file **from examples**:
+**00:00.746** total execution time for 1 file **from examples**:
 
 .. container::
 
@@ -33,5 +33,5 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_examples_spatial_indexing.py` (``spatial_indexing.py``)
-     - 00:00.773
+     - 00:00.746
      - 0.0
diff --git a/_sources/examples/spatial_indexing.rst.txt b/_sources/examples/spatial_indexing.rst.txt
index b31f1d3..622d040 100644
--- a/_sources/examples/spatial_indexing.rst.txt
+++ b/_sources/examples/spatial_indexing.rst.txt
@@ -43,10 +43,11 @@ these.
 
 We'll start by importing the required packages with matplotlib for plotting.
 
-.. GENERATED FROM PYTHON SOURCE LINES 27-36
+.. GENERATED FROM PYTHON SOURCE LINES 27-37
 
 .. code-block:: Python
 
+
     import os
 
     import matplotlib.pyplot as plt
@@ -63,11 +64,11 @@ We'll start by importing the required packages with matplotlib for plotting.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 37-38
+.. GENERATED FROM PYTHON SOURCE LINES 38-39
 
 Let's start with a rectangular mesh:
 
-.. GENERATED FROM PYTHON SOURCE LINES 38-44
+.. GENERATED FROM PYTHON SOURCE LINES 39-45
 
 .. code-block:: Python
 
@@ -84,11 +85,11 @@ Let's start with a rectangular mesh:
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 45-46
+.. GENERATED FROM PYTHON SOURCE LINES 46-47
 
 Determine the edges of the cells, and plot them.
 
-.. GENERATED FROM PYTHON SOURCE LINES 46-52
+.. GENERATED FROM PYTHON SOURCE LINES 47-53
 
 .. code-block:: Python
 
@@ -110,14 +111,14 @@ Determine the edges of the cells, and plot them.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 53-57
+.. GENERATED FROM PYTHON SOURCE LINES 54-58
 
 Locating points
 ---------------
 
 We'll build a cell tree first, then look for some points.
 
-.. GENERATED FROM PYTHON SOURCE LINES 57-68
+.. GENERATED FROM PYTHON SOURCE LINES 58-69
 
 .. code-block:: Python
 
@@ -145,7 +146,7 @@ We'll build a cell tree first, then look for some points.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 69-75
+.. GENERATED FROM PYTHON SOURCE LINES 70-76
 
 These numbers are the cell numbers in which we can find the points.
 
@@ -154,7 +155,7 @@ A value of -1 means that a point is not located in any cell.
 Let's get rid of the -1 values, and take a look which cells have been found.
 We'll color the found cells blue, and we'll draw the nodes to compare.
 
-.. GENERATED FROM PYTHON SOURCE LINES 75-82
+.. GENERATED FROM PYTHON SOURCE LINES 76-83
 
 .. code-block:: Python
 
@@ -177,11 +178,11 @@ We'll color the found cells blue, and we'll draw the nodes to compare.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 83-84
+.. GENERATED FROM PYTHON SOURCE LINES 84-85
 
 Now let's try a more exotic example.
 
-.. GENERATED FROM PYTHON SOURCE LINES 84-93
+.. GENERATED FROM PYTHON SOURCE LINES 85-94
 
 .. code-block:: Python
 
@@ -206,13 +207,13 @@ Now let's try a more exotic example.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 94-97
+.. GENERATED FROM PYTHON SOURCE LINES 95-98
 
 There are certainly no rows or columns to speak of!
 
 Let's build a new tree, and look for the same points as before.
 
-.. GENERATED FROM PYTHON SOURCE LINES 97-106
+.. GENERATED FROM PYTHON SOURCE LINES 98-107
 
 .. code-block:: Python
 
@@ -237,7 +238,7 @@ Let's build a new tree, and look for the same points as before.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 107-122
+.. GENERATED FROM PYTHON SOURCE LINES 108-123
 
 It should be clear by now that a point may only fall into a single cell. A
 point may also be out of bounds. If a cell falls exactly on an edge, one of the
@@ -255,7 +256,7 @@ A search of N points will yield N answers (cell numbers). A search of N boxes
 may yield M answers. To illustrate, let's look for all the cells inside of
 a box.
 
-.. GENERATED FROM PYTHON SOURCE LINES 122-136
+.. GENERATED FROM PYTHON SOURCE LINES 123-137
 
 .. code-block:: Python
 
@@ -285,11 +286,11 @@ a box.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 137-138
+.. GENERATED FROM PYTHON SOURCE LINES 138-139
 
 We can also search for multiple boxes:
 
-.. GENERATED FROM PYTHON SOURCE LINES 138-148
+.. GENERATED FROM PYTHON SOURCE LINES 139-149
 
 .. code-block:: Python
 
@@ -322,7 +323,7 @@ We can also search for multiple boxes:
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 149-154
+.. GENERATED FROM PYTHON SOURCE LINES 150-155
 
 Note that this method returns two arrays of equal length. The second array
 contains the cell numbers, as usual. The first array contains the index of
@@ -330,7 +331,7 @@ the bounding box in which the respective cells fall. Note that there are only
 two numbers in ``box_i``: there are no cells located in the third box, as we
 can confirm visually:
 
-.. GENERATED FROM PYTHON SOURCE LINES 154-167
+.. GENERATED FROM PYTHON SOURCE LINES 155-168
 
 .. code-block:: Python
 
@@ -359,7 +360,7 @@ can confirm visually:
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 168-179
+.. GENERATED FROM PYTHON SOURCE LINES 169-180
 
 Locating cells
 --------------
@@ -373,7 +374,7 @@ This returns three arrays of equal length:
 * the index of the face in the celtree
 * the area of the intersection
 
-.. GENERATED FROM PYTHON SOURCE LINES 179-211
+.. GENERATED FROM PYTHON SOURCE LINES 180-212
 
 .. code-block:: Python
 
@@ -421,14 +422,14 @@ This returns three arrays of equal length:
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 212-216
+.. GENERATED FROM PYTHON SOURCE LINES 213-217
 
 Let's color the faces of the mesh by their ratio of overlap. Because our
 mesh is triangular, we can represent the triangles as two collections of
 vectors (V, U). Then the area is half of the absolute value of the cross
 product of U and V.
 
-.. GENERATED FROM PYTHON SOURCE LINES 216-234
+.. GENERATED FROM PYTHON SOURCE LINES 217-235
 
 .. code-block:: Python
 
@@ -463,19 +464,19 @@ product of U and V.
 
  .. code-block:: none
 
-    /home/runner/work/numba_celltree/numba_celltree/examples/spatial_indexing.py:220: DeprecationWarning: Arrays of 2-dimensional vectors are deprecated. Use arrays of 3-dimensional vectors instead. (deprecated in NumPy 2.0)
+    /home/runner/work/numba_celltree/numba_celltree/examples/spatial_indexing.py:221: DeprecationWarning: Arrays of 2-dimensional vectors are deprecated. Use arrays of 3-dimensional vectors instead. (deprecated in NumPy 2.0)
       full_area = 0.5 * np.abs(np.cross(V, U))
 
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 235-238
+.. GENERATED FROM PYTHON SOURCE LINES 236-239
 
 ``CellTree2d`` also provides a method to compute overlaps between boxes and a
 mesh. This may come in handy to compute overlap with a raster, for example to
 rasterize a mesh.
 
-.. GENERATED FROM PYTHON SOURCE LINES 238-258
+.. GENERATED FROM PYTHON SOURCE LINES 239-259
 
 .. code-block:: Python
 
@@ -506,12 +507,12 @@ rasterize a mesh.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 259-261
+.. GENERATED FROM PYTHON SOURCE LINES 260-262
 
 We can construct a weight matrix with these arrays. This weight matrix stores
 for every raster cell (row) the area of overlap with a triangle (column).
 
-.. GENERATED FROM PYTHON SOURCE LINES 261-268
+.. GENERATED FROM PYTHON SOURCE LINES 262-269
 
 .. code-block:: Python
 
@@ -534,13 +535,13 @@ for every raster cell (row) the area of overlap with a triangle (column).
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 269-272
+.. GENERATED FROM PYTHON SOURCE LINES 270-273
 
 This weight matrix can be used for translating data from one mesh to another.
 Let's generate some mock elevation data for a valley. Then, we'll compute the
 area weighted mean for every raster cell.
 
-.. GENERATED FROM PYTHON SOURCE LINES 272-298
+.. GENERATED FROM PYTHON SOURCE LINES 273-299
 
 .. code-block:: Python
 
@@ -582,7 +583,7 @@ area weighted mean for every raster cell.
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 299-323
+.. GENERATED FROM PYTHON SOURCE LINES 300-324
 
 Such a weight matrix doesn't apply to just boxes and triangles, but to every
 case of mapping one mesh to another by intersecting cell areas. Note however
@@ -609,7 +610,7 @@ This once again returns three arrays of equal length:
 * the index of the cell
 * the location of the intersection
 
-.. GENERATED FROM PYTHON SOURCE LINES 323-332
+.. GENERATED FROM PYTHON SOURCE LINES 324-333
 
 .. code-block:: Python
 
@@ -638,13 +639,13 @@ This once again returns three arrays of equal length:
 
 
 
-.. GENERATED FROM PYTHON SOURCE LINES 333-336
+.. GENERATED FROM PYTHON SOURCE LINES 334-337
 
 To wrap up, we'll color the intersect faces with the length of the
 intersected line segments. We can easily compute the length of each segment
 with the Euclidian norm (Pythagorean distance):
 
-.. GENERATED FROM PYTHON SOURCE LINES 336-348
+.. GENERATED FROM PYTHON SOURCE LINES 337-349
 
 .. code-block:: Python
 
@@ -675,7 +676,7 @@ with the Euclidian norm (Pythagorean distance):
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** (0 minutes 0.773 seconds)
+   **Total running time of the script:** (0 minutes 0.746 seconds)
 
 
 .. _sphx_glr_download_examples_spatial_indexing.py:
diff --git a/_sources/sg_execution_times.rst.txt b/_sources/sg_execution_times.rst.txt
index 80d2a91..698e271 100644
--- a/_sources/sg_execution_times.rst.txt
+++ b/_sources/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:00.773** total execution time for 1 file **from all galleries**:
+**00:00.746** total execution time for 1 file **from all galleries**:
 
 .. container::
 
@@ -33,5 +33,5 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_examples_spatial_indexing.py` (``../examples/spatial_indexing.py``)
-     - 00:00.773
+     - 00:00.746
      - 0.0
diff --git a/_static/searchtools.js b/_static/searchtools.js
index 92da3f8..b08d58c 100644
--- a/_static/searchtools.js
+++ b/_static/searchtools.js
@@ -178,7 +178,7 @@ const Search = {
 
   htmlToText: (htmlString, anchor) => {
     const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
-    for (const removalQuery of [".headerlinks", "script", "style"]) {
+    for (const removalQuery of [".headerlink", "script", "style"]) {
       htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
     }
     if (anchor) {
@@ -328,13 +328,14 @@ const Search = {
     for (const [title, foundTitles] of Object.entries(allTitles)) {
       if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
         for (const [file, id] of foundTitles) {
-          let score = Math.round(100 * queryLower.length / title.length)
+          const score = Math.round(Scorer.title * queryLower.length / title.length);
+          const boost = titles[file] === title ? 1 : 0;  // add a boost for document titles
           normalResults.push([
             docNames[file],
             titles[file] !== title ? `${titles[file]} > ${title}` : title,
             id !== null ? "#" + id : "",
             null,
-            score,
+            score + boost,
             filenames[file],
           ]);
         }
diff --git a/api.html b/api.html
index 05793f4..70b7300 100644
--- a/api.html
+++ b/api.html
@@ -698,7 +698,7 @@
         
diff --git a/examples/index.html b/examples/index.html
index bf96011..48198a8 100644
--- a/examples/index.html
+++ b/examples/index.html
@@ -510,7 +510,7 @@ 

Examples diff --git a/examples/sg_execution_times.html b/examples/sg_execution_times.html index fb1fec4..92b4439 100644 --- a/examples/sg_execution_times.html +++ b/examples/sg_execution_times.html @@ -382,7 +382,7 @@

Computation times#

-

00:00.773 total execution time for 1 file from examples:

+

00:00.746 total execution time for 1 file from examples: