<pathstyle="stroke:none;"d="M 1.828125 -1.03125 L 3.078125 -1.03125 C 3.140625 -1.03125 3.234375 -1.03125 3.234375 -1.125 C 3.234375 -1.203125 3.140625 -1.203125 3.078125 -1.203125 L 1.828125 -1.203125 L 1.828125 -2.46875 C 1.828125 -2.53125 1.828125 -2.609375 1.75 -2.609375 C 1.65625 -2.609375 1.65625 -2.53125 1.65625 -2.46875 L 1.65625 -1.203125 L 0.40625 -1.203125 C 0.34375 -1.203125 0.25 -1.203125 0.25 -1.125 C 0.25 -1.03125 0.34375 -1.03125 0.40625 -1.03125 L 1.65625 -1.03125 L 1.65625 0.21875 C 1.65625 0.28125 1.65625 0.375 1.75 0.375 C 1.828125 0.375 1.828125 0.28125 1.828125 0.21875 Z M 1.828125 -1.03125 "/>
<pathstyle="stroke:none;"d="M 1.5 -0.34375 C 1.515625 -0.15625 1.625 0.03125 1.84375 0.03125 C 1.9375 0.03125 2.203125 -0.03125 2.203125 -0.40625 L 2.203125 -0.65625 L 2.09375 -0.65625 L 2.09375 -0.40625 C 2.09375 -0.140625 1.984375 -0.109375 1.9375 -0.109375 C 1.796875 -0.109375 1.765625 -0.3125 1.765625 -0.34375 L 1.765625 -1.234375 C 1.765625 -1.421875 1.765625 -1.59375 1.609375 -1.765625 C 1.4375 -1.9375 1.203125 -2.015625 1 -2.015625 C 0.625 -2.015625 0.3125 -1.796875 0.3125 -1.5 C 0.3125 -1.375 0.40625 -1.296875 0.53125 -1.296875 C 0.65625 -1.296875 0.734375 -1.375 0.734375 -1.5 C 0.734375 -1.546875 0.703125 -1.703125 0.5 -1.703125 C 0.625 -1.859375 0.84375 -1.90625 0.984375 -1.90625 C 1.203125 -1.90625 1.46875 -1.734375 1.46875 -1.34375 L 1.46875 -1.171875 C 1.234375 -1.15625 0.921875 -1.140625 0.640625 -1.015625 C 0.296875 -0.859375 0.1875 -0.625 0.1875 -0.421875 C 0.1875 -0.0625 0.625 0.046875 0.90625 0.046875 C 1.203125 0.046875 1.40625 -0.125 1.5 -0.34375 Z M 1.46875 -1.078125 L 1.46875 -0.625 C 1.46875 -0.203125 1.140625 -0.046875 0.9375 -0.046875 C 0.71875 -0.046875 0.53125 -0.203125 0.53125 -0.4375 C 0.53125 -0.671875 0.71875 -1.046875 1.46875 -1.078125 Z M 1.46875 -1.078125 "/>
</symbol>
<symboloverflow="visible"id="glyph1-2">
<pathstyle="stroke:none;"d="M 1.703125 -0.25 L 1.703125 0.046875 L 2.359375 0 L 2.359375 -0.140625 C 2.046875 -0.140625 2.015625 -0.171875 2.015625 -0.390625 L 2.015625 -3.109375 L 1.375 -3.0625 L 1.375 -2.921875 C 1.6875 -2.921875 1.71875 -2.890625 1.71875 -2.671875 L 1.71875 -1.703125 C 1.59375 -1.859375 1.390625 -1.984375 1.15625 -1.984375 C 0.625 -1.984375 0.15625 -1.546875 0.15625 -0.96875 C 0.15625 -0.390625 0.59375 0.046875 1.109375 0.046875 C 1.390625 0.046875 1.59375 -0.109375 1.703125 -0.25 Z M 1.703125 -1.453125 L 1.703125 -0.53125 C 1.703125 -0.453125 1.703125 -0.4375 1.65625 -0.359375 C 1.515625 -0.140625 1.3125 -0.046875 1.125 -0.046875 C 0.921875 -0.046875 0.765625 -0.171875 0.65625 -0.34375 C 0.53125 -0.515625 0.53125 -0.78125 0.53125 -0.953125 C 0.53125 -1.125 0.53125 -1.390625 0.65625 -1.59375 C 0.765625 -1.734375 0.921875 -1.890625 1.171875 -1.890625 C 1.328125 -1.890625 1.515625 -1.8125 1.65625 -1.609375 C 1.703125 -1.53125 1.703125 -1.53125 1.703125 -1.453125 Z M 1.703125 -1.453125 "/>
</symbol>
</symbol>
</g>
</g>
<clipPathid="clip1">
<clipPathid="clip1">
...
@@ -194,16 +197,15 @@
...
@@ -194,16 +197,15 @@
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 99.212469 55.077688 L 99.212469 50.265188 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 99.212469 55.077688 L 99.212469 50.265188 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.19608 1.592399 C -1.094518 0.994742 -0.0007675 0.100211 0.300014 -0.00135125 C -0.0007675 -0.0990075 -1.094518 -0.997445 -1.19608 -1.595101 "transform="matrix(0,1,1,0,137.48182,19.38358)"/>
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.19608 1.592399 C -1.094518 0.994742 -0.0007675 0.100211 0.300014 -0.00135125 C -0.0007675 -0.0990075 -1.094518 -0.997445 -1.19608 -1.595101 "transform="matrix(0,1,1,0,137.48182,19.38358)"/>
<pathstyle="fill-rule:nonzero;fill:rgb(0%,67.83905%,93.728638%);fill-opacity:0.5;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 21.259344 -7.086375 L 35.435125 -7.086375 L 35.435125 7.0855 L 21.259344 7.0855 Z M 21.259344 -7.086375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill-rule:nonzero;fill:rgb(0%,67.83905%,93.728638%);fill-opacity:0.5;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 21.259344 -7.086375 L 35.435125 -7.086375 L 35.435125 7.0855 L 21.259344 7.0855 Z M 21.259344 -7.086375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
...
@@ -215,7 +217,9 @@
...
@@ -215,7 +217,9 @@
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.196749 1.592231 C -1.095186 0.994575 -0.00143625 0.100044 0.299345 -0.00151875 C -0.00143625 -0.099175 -1.095186 -0.997613 -1.196749 -1.595269 "transform="matrix(0,1,1,0,66.6148,61.90378)"/>
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.196749 1.592231 C -1.095186 0.994575 -0.00143625 0.100044 0.299345 -0.00151875 C -0.00143625 -0.099175 -1.095186 -0.997613 -1.196749 -1.595269 "transform="matrix(0,1,1,0,66.6148,61.90378)"/>
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 48.497625 17.007375 C 48.497625 19.483938 45.821844 21.49175 42.521062 21.49175 C 39.220281 21.49175 36.540594 19.483938 36.540594 17.007375 C 36.540594 14.530813 39.220281 12.526906 42.521062 12.526906 C 45.821844 12.526906 48.497625 14.530813 48.497625 17.007375 Z M 48.497625 17.007375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 48.497625 17.007375 C 48.497625 19.483938 45.821844 21.49175 42.521062 21.49175 C 39.220281 21.49175 36.540594 19.483938 36.540594 17.007375 C 36.540594 14.530813 39.220281 12.526906 42.521062 12.526906 C 45.821844 12.526906 48.497625 14.530813 48.497625 17.007375 Z M 48.497625 17.007375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle=" stroke:none;fill-rule:nonzero;fill:rgb(100%,50%,0%);fill-opacity:0.5;"d="M 73.703125 76.734375 L 87.875 76.734375 L 87.875 62.5625 L 73.703125 62.5625 Z M 73.703125 76.734375 "/>
<pathstyle=" stroke:none;fill-rule:nonzero;fill:rgb(100%,50%,0%);fill-opacity:0.5;"d="M 73.703125 76.734375 L 87.875 76.734375 L 87.875 62.5625 L 73.703125 62.5625 Z M 73.703125 76.734375 "/>
...
@@ -230,7 +234,9 @@
...
@@ -230,7 +234,9 @@
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.196749 1.594612 C -1.095186 0.996956 -0.00143625 0.0985187 0.299345 0.0008625 C -0.00143625 -0.1007 -1.095186 -0.995231 -1.196749 -1.592888 "transform="matrix(0,1,1,0,80.7882,61.90378)"/>
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.196749 1.594612 C -1.095186 0.996956 -0.00143625 0.0985187 0.299345 0.0008625 C -0.00143625 -0.1007 -1.095186 -0.995231 -1.196749 -1.592888 "transform="matrix(0,1,1,0,80.7882,61.90378)"/>
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 62.6695 17.007375 C 62.6695 19.483938 59.993719 21.49175 56.692937 21.49175 C 53.392156 21.49175 50.716375 19.483938 50.716375 17.007375 C 50.716375 14.530813 53.392156 12.526906 56.692937 12.526906 C 59.993719 12.526906 62.6695 14.530813 62.6695 17.007375 Z M 62.6695 17.007375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 62.6695 17.007375 C 62.6695 19.483938 59.993719 21.49175 56.692937 21.49175 C 53.392156 21.49175 50.716375 19.483938 50.716375 17.007375 C 50.716375 14.530813 53.392156 12.526906 56.692937 12.526906 C 59.993719 12.526906 62.6695 14.530813 62.6695 17.007375 Z M 62.6695 17.007375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill-rule:nonzero;fill:rgb(55.488586%,52.549744%,0%);fill-opacity:0.5;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 49.607 -7.086375 L 63.778875 -7.086375 L 63.778875 7.0855 L 49.607 7.0855 Z M 49.607 -7.086375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill-rule:nonzero;fill:rgb(55.488586%,52.549744%,0%);fill-opacity:0.5;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 49.607 -7.086375 L 63.778875 -7.086375 L 63.778875 7.0855 L 49.607 7.0855 Z M 49.607 -7.086375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
...
@@ -242,7 +248,9 @@
...
@@ -242,7 +248,9 @@
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.196749 1.593067 C -1.095186 0.995411 -0.00143625 0.10088 0.299345 -0.0006825 C -0.00143625 -0.0983388 -1.095186 -0.996776 -1.196749 -1.594433 "transform="matrix(0,1,1,0,94.96162,61.90378)"/>
<pathstyle="fill:none;stroke-width:0.31879;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M -1.196749 1.593067 C -1.095186 0.995411 -0.00143625 0.10088 0.299345 -0.0006825 C -0.00143625 -0.0983388 -1.095186 -0.996776 -1.196749 -1.594433 "transform="matrix(0,1,1,0,94.96162,61.90378)"/>
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 76.845281 17.007375 C 76.845281 19.483938 74.1695 21.49175 70.868719 21.49175 C 67.564031 21.49175 64.88825 19.483938 64.88825 17.007375 C 64.88825 14.530813 67.564031 12.526906 70.868719 12.526906 C 74.1695 12.526906 76.845281 14.530813 76.845281 17.007375 Z M 76.845281 17.007375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle="fill:none;stroke-width:0.3985;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;"d="M 76.845281 17.007375 C 76.845281 19.483938 74.1695 21.49175 70.868719 21.49175 C 67.564031 21.49175 64.88825 19.483938 64.88825 17.007375 C 64.88825 14.530813 67.564031 12.526906 70.868719 12.526906 C 74.1695 12.526906 76.845281 14.530813 76.845281 17.007375 Z M 76.845281 17.007375 "transform="matrix(1,0,0,-1,38.268,69.648)"/>
<pathstyle=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:0.5;"d="M 102.046875 76.734375 L 116.222656 76.734375 L 116.222656 62.5625 L 102.046875 62.5625 Z M 102.046875 76.734375 "/>
<pathstyle=" stroke:none;fill-rule:nonzero;fill:rgb(92.549133%,0%,54.899597%);fill-opacity:0.5;"d="M 102.046875 76.734375 L 116.222656 76.734375 L 116.222656 62.5625 L 102.046875 62.5625 Z M 102.046875 76.734375 "/>
This package consists of a small extension library of highly optimized sparse update (scatter) operations for the use in `PyTorch <http://pytorch.org/>`_, which are missing in the main package.
This package consists of a small extension library of highly optimized sparse update (scatter and segment) operations for the use in `PyTorch <http://pytorch.org/>`_, which are missing in the main package.
Scatter operations can be roughly described as reduce operations based on a given "group-index" tensor.
Scatter and segment operations can be roughly described as reduce operations based on a given "group-index" tensor.
Segment operations require the "group-index" tensor to be sorted, whereas scatter operations are not subject to these requirements.
All included operations are broadcastable, work on varying data types, and are implemented both for CPU and GPU with corresponding backward implementations.
All included operations are broadcastable, work on varying data types, and are implemented both for CPU and GPU with corresponding backward implementations.