diff options
Diffstat (limited to 'src/Bitmap_cubical_complex')
9 files changed, 765 insertions, 31 deletions
diff --git a/src/Bitmap_cubical_complex/doc/Cubical_complex_representation.ipe b/src/Bitmap_cubical_complex/doc/Cubical_complex_representation.ipe new file mode 100644 index 00000000..bec245e7 --- /dev/null +++ b/src/Bitmap_cubical_complex/doc/Cubical_complex_representation.ipe @@ -0,0 +1,732 @@ +<?xml version="1.0"?> +<!DOCTYPE ipe SYSTEM "ipe.dtd"> +<ipe version="70107" creator="Ipe 7.1.10"> +<info created="D:20160330102945" modified="D:20160330104654"/> +<ipestyle name="basic"> +<symbol name="arrow/arc(spx)"> +<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen"> +0 0 m +-1 0.333 l +-1 -0.333 l +h +</path> +</symbol> +<symbol name="arrow/farc(spx)"> +<path stroke="sym-stroke" fill="white" pen="sym-pen"> +0 0 m +-1 0.333 l +-1 -0.333 l +h +</path> +</symbol> +<symbol name="arrow/ptarc(spx)"> +<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen"> +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h +</path> +</symbol> +<symbol name="arrow/fptarc(spx)"> +<path stroke="sym-stroke" fill="white" pen="sym-pen"> +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h +</path> +</symbol> +<symbol name="mark/circle(sx)" transformations="translations"> +<path fill="sym-stroke"> +0.6 0 0 0.6 0 0 e +0.4 0 0 0.4 0 0 e +</path> +</symbol> +<symbol name="mark/disk(sx)" transformations="translations"> +<path fill="sym-stroke"> +0.6 0 0 0.6 0 0 e +</path> +</symbol> +<symbol name="mark/fdisk(sfx)" transformations="translations"> +<group> +<path fill="sym-fill"> +0.5 0 0 0.5 0 0 e +</path> +<path fill="sym-stroke" fillrule="eofill"> +0.6 0 0 0.6 0 0 e +0.4 0 0 0.4 0 0 e +</path> +</group> +</symbol> +<symbol name="mark/box(sx)" transformations="translations"> +<path fill="sym-stroke" fillrule="eofill"> +-0.6 -0.6 m +0.6 -0.6 l +0.6 0.6 l +-0.6 0.6 l +h +-0.4 -0.4 m +0.4 -0.4 l +0.4 0.4 l +-0.4 0.4 l +h +</path> +</symbol> +<symbol name="mark/square(sx)" transformations="translations"> +<path fill="sym-stroke"> +-0.6 -0.6 m +0.6 -0.6 l +0.6 0.6 l +-0.6 0.6 l +h +</path> +</symbol> +<symbol name="mark/fsquare(sfx)" transformations="translations"> +<group> +<path fill="sym-fill"> +-0.5 -0.5 m +0.5 -0.5 l +0.5 0.5 l +-0.5 0.5 l +h +</path> +<path fill="sym-stroke" fillrule="eofill"> +-0.6 -0.6 m +0.6 -0.6 l +0.6 0.6 l +-0.6 0.6 l +h +-0.4 -0.4 m +0.4 -0.4 l +0.4 0.4 l +-0.4 0.4 l +h +</path> +</group> +</symbol> +<symbol name="mark/cross(sx)" transformations="translations"> +<group> +<path fill="sym-stroke"> +-0.43 -0.57 m +0.57 0.43 l +0.43 0.57 l +-0.57 -0.43 l +h +</path> +<path fill="sym-stroke"> +-0.43 0.57 m +0.57 -0.43 l +0.43 -0.57 l +-0.57 0.43 l +h +</path> +</group> +</symbol> +<symbol name="arrow/fnormal(spx)"> +<path stroke="sym-stroke" fill="white" pen="sym-pen"> +0 0 m +-1 0.333 l +-1 -0.333 l +h +</path> +</symbol> +<symbol name="arrow/pointed(spx)"> +<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen"> +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h +</path> +</symbol> +<symbol name="arrow/fpointed(spx)"> +<path stroke="sym-stroke" fill="white" pen="sym-pen"> +0 0 m +-1 0.333 l +-0.8 0 l +-1 -0.333 l +h +</path> +</symbol> +<symbol name="arrow/linear(spx)"> +<path stroke="sym-stroke" pen="sym-pen"> +-1 0.333 m +0 0 l +-1 -0.333 l +</path> +</symbol> +<symbol name="arrow/fdouble(spx)"> +<path stroke="sym-stroke" fill="white" pen="sym-pen"> +0 0 m +-1 0.333 l +-1 -0.333 l +h +-1 0 m +-2 0.333 l +-2 -0.333 l +h +</path> +</symbol> +<symbol name="arrow/double(spx)"> +<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen"> +0 0 m +-1 0.333 l +-1 -0.333 l +h +-1 0 m +-2 0.333 l +-2 -0.333 l +h +</path> +</symbol> +<pen name="heavier" value="0.8"/> +<pen name="fat" value="1.2"/> +<pen name="ultrafat" value="2"/> +<symbolsize name="large" value="5"/> +<symbolsize name="small" value="2"/> +<symbolsize name="tiny" value="1.1"/> +<arrowsize name="large" value="10"/> +<arrowsize name="small" value="5"/> +<arrowsize name="tiny" value="3"/> +<color name="red" value="1 0 0"/> +<color name="green" value="0 1 0"/> +<color name="blue" value="0 0 1"/> +<color name="yellow" value="1 1 0"/> +<color name="orange" value="1 0.647 0"/> +<color name="gold" value="1 0.843 0"/> +<color name="purple" value="0.627 0.125 0.941"/> +<color name="gray" value="0.745"/> +<color name="brown" value="0.647 0.165 0.165"/> +<color name="navy" value="0 0 0.502"/> +<color name="pink" value="1 0.753 0.796"/> +<color name="seagreen" value="0.18 0.545 0.341"/> +<color name="turquoise" value="0.251 0.878 0.816"/> +<color name="violet" value="0.933 0.51 0.933"/> +<color name="darkblue" value="0 0 0.545"/> +<color name="darkcyan" value="0 0.545 0.545"/> +<color name="darkgray" value="0.663"/> +<color name="darkgreen" value="0 0.392 0"/> +<color name="darkmagenta" value="0.545 0 0.545"/> +<color name="darkorange" value="1 0.549 0"/> +<color name="darkred" value="0.545 0 0"/> +<color name="lightblue" value="0.678 0.847 0.902"/> +<color name="lightcyan" value="0.878 1 1"/> +<color name="lightgray" value="0.827"/> +<color name="lightgreen" value="0.565 0.933 0.565"/> +<color name="lightyellow" value="1 1 0.878"/> +<dashstyle name="dashed" value="[4] 0"/> +<dashstyle name="dotted" value="[1 3] 0"/> +<dashstyle name="dash dotted" value="[4 2 1 2] 0"/> +<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/> +<textsize name="large" value="\large"/> +<textsize name="Large" value="\Large"/> +<textsize name="LARGE" value="\LARGE"/> +<textsize name="huge" value="\huge"/> +<textsize name="Huge" value="\Huge"/> +<textsize name="small" value="\small"/> +<textsize name="footnote" value="\footnotesize"/> +<textsize name="tiny" value="\tiny"/> +<textstyle name="center" begin="\begin{center}" end="\end{center}"/> +<textstyle name="itemize" begin="\begin{itemize}" end="\end{itemize}"/> +<textstyle name="item" begin="\begin{itemize}\item{}" end="\end{itemize}"/> +<gridsize name="4 pts" value="4"/> +<gridsize name="8 pts (~3 mm)" value="8"/> +<gridsize name="16 pts (~6 mm)" value="16"/> +<gridsize name="32 pts (~12 mm)" value="32"/> +<gridsize name="10 pts (~3.5 mm)" value="10"/> +<gridsize name="20 pts (~7 mm)" value="20"/> +<gridsize name="14 pts (~5 mm)" value="14"/> +<gridsize name="28 pts (~10 mm)" value="28"/> +<gridsize name="56 pts (~20 mm)" value="56"/> +<anglesize name="90 deg" value="90"/> +<anglesize name="60 deg" value="60"/> +<anglesize name="45 deg" value="45"/> +<anglesize name="30 deg" value="30"/> +<anglesize name="22.5 deg" value="22.5"/> +<opacity name="10%" value="0.1"/> +<opacity name="30%" value="0.3"/> +<opacity name="50%" value="0.5"/> +<opacity name="75%" value="0.75"/> +<tiling name="falling" angle="-60" step="4" width="1"/> +<tiling name="rising" angle="30" step="4" width="1"/> +</ipestyle> +<page> +<layer name="alpha"/> +<view layers="alpha" active="alpha"/> +<path layer="alpha" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">0</text> +<path stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<text transformations="translations" pos="212 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">1</text> +<path matrix="1 0 0 1 64 0" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text matrix="1 0 0 1 64 0" transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">2</text> +<path matrix="1 0 0 1 64 0" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<text matrix="1 0 0 1 64 0" transformations="translations" pos="212 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">3</text> +<path matrix="1 0 0 1 128 0" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text matrix="1 0 0 1 128 0" transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">4</text> +<path matrix="1 0 0 1 128 0" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<text matrix="1 0 0 1 128 0" transformations="translations" pos="212 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">5</text> +<path matrix="1 0 0 1 192 0" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text matrix="1 0 0 1 192 0" transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">6</text> +<path matrix="1 0 0 1 192 0" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<text matrix="1 0 0 1 192 0" transformations="translations" pos="212 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">7</text> +<path matrix="1 0 0 1 256 0" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text matrix="1 0 0 1 256 0" transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">8</text> +<path matrix="1 0 0 1 0 -32" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text matrix="1 0 0 1 0 -48" transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">1</text> +<path matrix="1 0 0 1 0 -32" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 64 -32" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text matrix="1 0 0 1 64 -48" transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">2</text> +<path matrix="1 0 0 1 64 -32" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<text matrix="1 0 0 1 96 -48" transformations="translations" pos="212 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">3</text> +<path matrix="1 0 0 1 128 -32" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text matrix="1 0 0 1 192 -48" transformations="translations" pos="180 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">4</text> +<path matrix="1 0 0 1 128 -32" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<text matrix="1 0 0 1 224 -48" transformations="translations" pos="212 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">5</text> +<path matrix="1 0 0 1 192 -32" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 192 -32" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 256 -32" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 -32 0" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 -32 64" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 0 64" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 -32 128" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<text transformations="translations" pos="132 484" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">1</text> +<text transformations="translations" pos="132 548" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">2</text> +<text transformations="translations" pos="132 612" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">3</text> +<path matrix="1 0 0 1 32 0" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<text transformations="translations" pos="180 516" stroke="black" type="label" width="4.981" height="6.42" depth="0" valign="baseline">9</text> +<path matrix="1 0 0 1 96 0" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<text transformations="translations" pos="244 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">11</text> +<path matrix="1 0 0 1 160 0" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 224 0" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 288 0" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 0 64" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 0 64" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 64 64" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 64 64" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 128 64" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 128 64" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 192 64" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 192 64" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 256 64" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 0 128" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 0 128" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 64 128" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 64 128" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 128 128" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 128 128" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 192 128" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 192 128" stroke="black" fill="lightgreen"> +192 496 m +192 480 l +240 480 l +240 496 l +h +</path> +<path matrix="1 0 0 1 256 128" stroke="black" fill="lightblue"> +176 496 m +176 480 l +192 480 l +192 496 l +h +</path> +<path matrix="1 0 0 1 32 64" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 96 64" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 160 64" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 224 64" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path matrix="1 0 0 1 288 64" stroke="black" fill="lightgreen"> +160 496 m +160 544 l +144 544 l +144 496 l +h +</path> +<path stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<path matrix="1 0 0 1 64 0" stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<path matrix="1 0 0 1 128 0" stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<path matrix="1 0 0 1 192 0" stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<path matrix="1 0 0 1 0 64" stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<path matrix="1 0 0 1 64 64" stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<path matrix="1 0 0 1 128 64" stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<path matrix="1 0 0 1 192 64" stroke="black" fill="lightgray"> +192 544 m +192 496 l +240 496 l +240 544 l +h +</path> +<text transformations="translations" pos="212 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">10</text> +<text transformations="translations" pos="276 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">12</text> +<text transformations="translations" pos="308 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">13</text> +<text transformations="translations" pos="340 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">14</text> +<text transformations="translations" pos="372 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">15</text> +<text transformations="translations" pos="404 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">16</text> +<text transformations="translations" pos="436 516" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">17</text> +<text transformations="translations" pos="180 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">18</text> +<text transformations="translations" pos="212 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">19</text> +<text transformations="translations" pos="244 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">20</text> +<text transformations="translations" pos="276 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">21</text> +<text transformations="translations" pos="308 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">22</text> +<text transformations="translations" pos="340 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">23</text> +<text transformations="translations" pos="372 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">24</text> +<text transformations="translations" pos="404 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">25</text> +<text transformations="translations" pos="436 548" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">26</text> +<text transformations="translations" pos="180 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">27</text> +<text transformations="translations" pos="212 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">28</text> +<text transformations="translations" pos="244 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">29</text> +<text transformations="translations" pos="276 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">30</text> +<text transformations="translations" pos="308 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">31</text> +<text transformations="translations" pos="340 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">32</text> +<text transformations="translations" pos="372 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">33</text> +<text transformations="translations" pos="404 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">34</text> +<text transformations="translations" pos="436 580" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">35</text> +<text transformations="translations" pos="180 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">36</text> +<text transformations="translations" pos="212 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">37</text> +<text transformations="translations" pos="244 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">38</text> +<text transformations="translations" pos="276 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">39</text> +<text transformations="translations" pos="308 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">40</text> +<text transformations="translations" pos="340 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">41</text> +<text transformations="translations" pos="372 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">42</text> +<text transformations="translations" pos="404 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">43</text> +<text transformations="translations" pos="436 612" stroke="black" type="label" width="9.963" height="6.42" depth="0" valign="baseline">44</text> +<path stroke="black" arrow="normal/normal"> +152 456 m +472 456 l +</path> +<path stroke="black" arrow="normal/normal"> +152 456 m +152 648 l +</path> +</page> +</ipe> diff --git a/src/Bitmap_cubical_complex/doc/Cubical_complex_representation.png b/src/Bitmap_cubical_complex/doc/Cubical_complex_representation.png Binary files differnew file mode 100644 index 00000000..afb2a75e --- /dev/null +++ b/src/Bitmap_cubical_complex/doc/Cubical_complex_representation.png diff --git a/src/Bitmap_cubical_complex/doc/Gudhi_Cubical_Complex_doc.h b/src/Bitmap_cubical_complex/doc/Gudhi_Cubical_Complex_doc.h index cde0b2fc..83921427 100644 --- a/src/Bitmap_cubical_complex/doc/Gudhi_Cubical_Complex_doc.h +++ b/src/Bitmap_cubical_complex/doc/Gudhi_Cubical_Complex_doc.h @@ -76,7 +76,7 @@ namespace Cubical_complex { * directions, allows to determine, dimension, neighborhood, boundary and coboundary of every cube \f$C \in
* \mathcal{K}\f$.
*
- * \image html "bitmapAllCubes.png" "Cubical complex.
+ * \image html "Cubical_complex_representation.png" Cubical complex.
*
* Note that the cubical complex in the figure above is, in a natural way, a product of one dimensional cubical
* complexes in \f$\mathbb{R}\f$. The number of all cubes in each direction is equal \f$2n+1\f$, where \f$n\f$ is the
@@ -145,7 +145,8 @@ namespace Cubical_complex { * \section BitmapExamples Examples
* End user programs are available in example/Bitmap_cubical_complex folder.
-
+ *
+ * \copyright GNU General Public License v3.
*/
/** @} */ // end defgroup cubical_complex
diff --git a/src/Bitmap_cubical_complex/example/CMakeLists.txt b/src/Bitmap_cubical_complex/example/CMakeLists.txt index 8f9cfa80..ad86b763 100644 --- a/src/Bitmap_cubical_complex/example/CMakeLists.txt +++ b/src/Bitmap_cubical_complex/example/CMakeLists.txt @@ -2,16 +2,25 @@ cmake_minimum_required(VERSION 2.6) project(GUDHIBitmap) add_executable ( Bitmap_cubical_complex Bitmap_cubical_complex.cpp ) -target_link_libraries(Bitmap_cubical_complex ${Boost_SYSTEM_LIBRARY}) +target_link_libraries(Bitmap_cubical_complex ${Boost_SYSTEM_LIBRARY}) +if (TBB_FOUND) + target_link_libraries(Bitmap_cubical_complex ${TBB_RELEASE_LIBRARY}) +endif() add_test(Bitmap_cubical_complex_one_sphere ${CMAKE_CURRENT_BINARY_DIR}/Bitmap_cubical_complex ${CMAKE_SOURCE_DIR}/data/bitmap/CubicalOneSphere.txt) add_test(Bitmap_cubical_complex_two_sphere ${CMAKE_CURRENT_BINARY_DIR}/Bitmap_cubical_complex ${CMAKE_SOURCE_DIR}/data/bitmap/CubicalTwoSphere.txt) add_executable ( Random_bitmap_cubical_complex Random_bitmap_cubical_complex.cpp ) -target_link_libraries(Random_bitmap_cubical_complex ${Boost_SYSTEM_LIBRARY}) +target_link_libraries(Random_bitmap_cubical_complex ${Boost_SYSTEM_LIBRARY}) +if (TBB_FOUND) + target_link_libraries(Random_bitmap_cubical_complex ${TBB_RELEASE_LIBRARY}) +endif() add_test(Random_bitmap_cubical_complex ${CMAKE_CURRENT_BINARY_DIR}/Random_bitmap_cubical_complex 2 100 100) add_executable ( Bitmap_cubical_complex_periodic_boundary_conditions Bitmap_cubical_complex_periodic_boundary_conditions.cpp ) -target_link_libraries(Bitmap_cubical_complex_periodic_boundary_conditions ${Boost_SYSTEM_LIBRARY}) +target_link_libraries(Bitmap_cubical_complex_periodic_boundary_conditions ${Boost_SYSTEM_LIBRARY}) +if (TBB_FOUND) + target_link_libraries(Bitmap_cubical_complex_periodic_boundary_conditions ${TBB_RELEASE_LIBRARY}) +endif() add_test(Bitmap_cubical_complex_periodic_2d_torus ${CMAKE_CURRENT_BINARY_DIR}/Bitmap_cubical_complex_periodic_boundary_conditions ${CMAKE_SOURCE_DIR}/data/bitmap/2d_torus.txt) add_test(Bitmap_cubical_complex_periodic_3d_torus ${CMAKE_CURRENT_BINARY_DIR}/Bitmap_cubical_complex_periodic_boundary_conditions ${CMAKE_SOURCE_DIR}/data/bitmap/3d_torus.txt) diff --git a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex.h b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex.h index 67e1fed3..56fa297c 100644 --- a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex.h +++ b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex.h @@ -46,18 +46,14 @@ const bool globalDbg = false; template <typename T> class is_before_in_filtration; /** - * This is a Bitmap_cubical_complex class. It joints a functionalities of Bitmap_cubical_complex_base and + * @brief Cubical complex represented as a bitmap. + * @ingroup cubical_complex + * @details This is a Bitmap_cubical_complex class. It joints a functionalities of Bitmap_cubical_complex_base and * Bitmap_cubical_complex_periodic_boundary_conditions_base classes into * Gudhi persistent homology engine. It is a template class that inherit from its template parameter. The template * parameter is supposed to be either Bitmap_cubical_complex_base or * Bitmap_cubical_complex_periodic_boundary_conditions_base class. **/ - -/** - *@class Bitmap_cubical_complex - *@brief Cubical complex represented as a bitmap. - *@ingroup cubical_complex - */ template <typename T> class Bitmap_cubical_complex : public T { public: @@ -321,7 +317,7 @@ class Bitmap_cubical_complex : public T { }; /** - * Filtration_simplex_range provides the ranges for Filtration_simplex_iterator. + * @brief Filtration_simplex_range provides the ranges for Filtration_simplex_iterator. **/ class Filtration_simplex_range { // Range over the simplices of the complex in the order of the filtration. @@ -492,7 +488,7 @@ class Bitmap_cubical_complex : public T { }; /** - * Class needed for compatibility with Gudhi. Not useful for other purposes. + * @brief Class needed for compatibility with Gudhi. Not useful for other purposes. **/ class Skeleton_simplex_range { // Range over the simplices of the complex in the order of the filtration. @@ -549,7 +545,8 @@ void Bitmap_cubical_complex<T>::initialize_simplex_associated_to_key() { this->simplex_associated_to_key = std::vector<size_t>(this->data.size()); std::iota(std::begin(simplex_associated_to_key), std::end(simplex_associated_to_key), 0); #ifdef GUDHI_USE_TBB - tbb::parallel_sort(simplex_associated_to_key, is_before_in_filtration<T>(this)); + tbb::parallel_sort(simplex_associated_to_key.begin(), simplex_associated_to_key.end(), + is_before_in_filtration<T>(this)); #else std::sort(simplex_associated_to_key.begin(), simplex_associated_to_key.end(), is_before_in_filtration<T>(this)); #endif diff --git a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex/counter.h b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex/counter.h index 266ce051..3a8c3988 100644 --- a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex/counter.h +++ b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex/counter.h @@ -31,8 +31,8 @@ namespace Gudhi { namespace Cubical_complex { /** - * This is an implementation of a counter being a vector of integers. - * The constructor of the class takes as an input two vectors W and V. + * @brief This is an implementation of a counter being a vector of integers. + * @details The constructor of the class takes as an input two vectors W and V. * It assumes that W < V coordinatewise. * If the initial counter W is not specified, it is assumed to be vector of zeros. * The class allows to iterate between W and V by using increment() function. @@ -40,7 +40,6 @@ namespace Cubical_complex { * The current counter reach the end counter V if the value returned by the increment function is FALSE. * This class is needed for the implementation of a bitmapCubicalComplex. **/ - class counter { public: /** diff --git a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_base.h b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_base.h index 7294da98..2f74ba9e 100644 --- a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_base.h +++ b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_base.h @@ -39,13 +39,9 @@ namespace Gudhi { namespace Cubical_complex { /** - * @class Bitmap_cubical_complex_base * @brief Cubical complex represented as a bitmap, class with basic implementation. * @ingroup cubical_complex - */ - -/** - * This is a class implementing a basic bitmap data structure to store cubical complexes. + * @details This is a class implementing a basic bitmap data structure to store cubical complexes. * It implements only the most basic subroutines. * The idea of the bitmap is the following. Our aim is to have a memory efficient * data structure to store d-dimensional cubical complex @@ -193,7 +189,7 @@ class Bitmap_cubical_complex_base { // ITERATORS /** - * Iterator through all cells in the complex (in order they appear in the structure -- i.e. + * @brief Iterator through all cells in the complex (in order they appear in the structure -- i.e. * in lexicographical order). **/ class All_cells_iterator : std::iterator< std::input_iterator_tag, T > { @@ -261,7 +257,7 @@ class Bitmap_cubical_complex_base { } /** - * All_cells_range class provides ranges for All_cells_iterator + * @brief All_cells_range class provides ranges for All_cells_iterator **/ class All_cells_range { public: @@ -312,7 +308,7 @@ class Bitmap_cubical_complex_base { } /** - * Iterator through top dimensional cells of the complex. The cells appear in order they are stored + * @brief Iterator through top dimensional cells of the complex. The cells appear in order they are stored * in the structure (i.e. in lexicographical order) **/ class Top_dimensional_cells_iterator : std::iterator< std::input_iterator_tag, T > { @@ -414,7 +410,7 @@ class Bitmap_cubical_complex_base { } /** - * Top_dimensional_cells_iterator_range class provides ranges for Top_dimensional_cells_iterator_range + * @brief Top_dimensional_cells_iterator_range class provides ranges for Top_dimensional_cells_iterator_range **/ class Top_dimensional_cells_range { public: diff --git a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h index a446c0e8..0d0f2f84 100644 --- a/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +++ b/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h @@ -39,12 +39,9 @@ namespace Cubical_complex { // the cells on the right / top are not in the Bitmap_cubical_complex_periodic_boundary_conditions_base /** - * @class Bitmap_cubical_complex_periodic_boundary_conditions_base * @brief Cubical complex with periodic boundary conditions represented as a bitmap. * @ingroup cubical_complex - */ -/** - * This is a class implementing a bitmap data structure with periodic boundary conditions. Most of the functions are + * @details This is a class implementing a bitmap data structure with periodic boundary conditions. Most of the functions are * identical to the functions from Bitmap_cubical_complex_base. * The ones that needed to be updated are the constructors and get_boundary_of_a_cell and get_coboundary_of_a_cell. */ diff --git a/src/Bitmap_cubical_complex/test/CMakeLists.txt b/src/Bitmap_cubical_complex/test/CMakeLists.txt index b6fc8a3b..0e5340c7 100644 --- a/src/Bitmap_cubical_complex/test/CMakeLists.txt +++ b/src/Bitmap_cubical_complex/test/CMakeLists.txt @@ -12,6 +12,9 @@ endif() add_executable ( BitmapCCUT Bitmap_test.cpp ) target_link_libraries(BitmapCCUT ${Boost_SYSTEM_LIBRARY} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) +if (TBB_FOUND) + target_link_libraries(BitmapCCUT ${TBB_RELEASE_LIBRARY}) +endif() # Unitary tests add_test(NAME BitmapCCUT |