summaryrefslogtreecommitdiff
path: root/silx/resources
diff options
context:
space:
mode:
Diffstat (limited to 'silx/resources')
-rw-r--r--silx/resources/gui/icons/compare-align-auto.pngbin0 -> 1446 bytes
-rw-r--r--silx/resources/gui/icons/compare-align-auto.svg4
-rw-r--r--silx/resources/gui/icons/compare-align-center.pngbin0 -> 716 bytes
-rw-r--r--silx/resources/gui/icons/compare-align-center.svg4
-rw-r--r--silx/resources/gui/icons/compare-align-origin.pngbin0 -> 728 bytes
-rw-r--r--silx/resources/gui/icons/compare-align-origin.svg4
-rw-r--r--silx/resources/gui/icons/compare-align-stretch.pngbin0 -> 903 bytes
-rw-r--r--silx/resources/gui/icons/compare-align-stretch.svg4
-rw-r--r--silx/resources/gui/icons/compare-keypoints.pngbin0 -> 616 bytes
-rw-r--r--silx/resources/gui/icons/compare-keypoints.svg17
-rw-r--r--silx/resources/gui/icons/compare-mode-a.pngbin0 -> 803 bytes
-rw-r--r--silx/resources/gui/icons/compare-mode-a.svg13
-rw-r--r--silx/resources/gui/icons/compare-mode-b.pngbin0 -> 740 bytes
-rw-r--r--silx/resources/gui/icons/compare-mode-b.svg13
-rw-r--r--silx/resources/gui/icons/compare-mode-hline.pngbin0 -> 902 bytes
-rw-r--r--silx/resources/gui/icons/compare-mode-hline.svg16
-rw-r--r--silx/resources/gui/icons/compare-mode-rb-channel.pngbin0 -> 1269 bytes
-rw-r--r--silx/resources/gui/icons/compare-mode-rb-channel.svg17
-rw-r--r--silx/resources/gui/icons/compare-mode-rbneg-channel.pngbin0 -> 1260 bytes
-rw-r--r--silx/resources/gui/icons/compare-mode-rbneg-channel.svg17
-rw-r--r--silx/resources/gui/icons/compare-mode-vline.pngbin0 -> 1079 bytes
-rw-r--r--silx/resources/gui/icons/compare-mode-vline.svg17
-rw-r--r--silx/resources/gui/icons/math-mean.pngbin0 -> 1487 bytes
-rw-r--r--silx/resources/gui/icons/math-mean.svg2
-rw-r--r--silx/resources/opencl/bitonic.cl232
-rw-r--r--silx/resources/opencl/linalg.cl57
-rw-r--r--silx/resources/opencl/medfilt.cl2
27 files changed, 279 insertions, 140 deletions
diff --git a/silx/resources/gui/icons/compare-align-auto.png b/silx/resources/gui/icons/compare-align-auto.png
new file mode 100644
index 0000000..0a716e7
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-auto.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-align-auto.svg b/silx/resources/gui/icons/compare-align-auto.svg
new file mode 100644
index 0000000..de82c30
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-auto.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg44" version="1.1" viewBox="0 0 32 32" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata50"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><radialGradient id="a" cx="22.443" cy="21.502" r="0" gradientUnits="userSpaceOnUse"><stop id="stop21" stop-color="#00aeef" stop-opacity=".6" offset="0"/><stop id="stop23" stop-color="#517180" stop-opacity=".5317" offset=".6832"/><stop id="stop25" stop-color="#414042" stop-opacity=".5" offset="1"/></radialGradient><path id="path34" d="m22.443 21.502" fill="url(#a)"/><path id="path36" d="m10.992 6.764s4.839-0.584 5.992 4.366" fill="none" stroke="#FFF" stroke-miterlimit="10" stroke-width="1.2"/><g id="g4597" transform="matrix(.89618 0 0 .89618 33.643 30.672)"><rect id="rect2-6" x="-34.289" y="-27.796" width="26.026" height="26.026" ry="0" fill="#fab058" stroke="#000" stroke-miterlimit="2.1" stroke-width="1.5622"/><text id="text4553" x="-33.067287" y="-5.5593224" fill="#000000" font-family="Scriptina" font-size="25.304px" letter-spacing="0px" stroke-width=".79075px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551" x="-33.067287" y="-5.5593224" font-family="sans-serif" font-weight="bold" stroke-width=".79075px">A</tspan></text>
+</g><g id="g4602" transform="matrix(.50611 .17057 -.17057 .50611 -5.8136 18.919)"><rect id="rect2-6-4" x="33.767" y="-32.267" width="26.026" height="26.026" ry="0" fill="#d5fa58" stroke="#000" stroke-miterlimit="2" stroke-width="2.6213"/><text id="text4553-1" x="36.864368" y="-10.030853" fill="#000000" font-family="Scriptina" font-size="25.304px" letter-spacing="0px" stroke-width=".79075px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7" x="36.864368" y="-10.030853" font-family="sans-serif" font-weight="bold" stroke-width=".79075px">B</tspan></text>
+</g></svg>
diff --git a/silx/resources/gui/icons/compare-align-center.png b/silx/resources/gui/icons/compare-align-center.png
new file mode 100644
index 0000000..bb2e8c1
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-center.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-align-center.svg b/silx/resources/gui/icons/compare-align-center.svg
new file mode 100644
index 0000000..1888820
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-center.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg44" version="1.1" viewBox="0 0 32 32" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata50"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><radialGradient id="a" cx="22.443" cy="21.502" r="0" gradientTransform="translate(-6.443 -5.502)" gradientUnits="userSpaceOnUse"><stop id="stop21" stop-color="#00aeef" stop-opacity=".6" offset="0"/><stop id="stop23" stop-color="#517180" stop-opacity=".5317" offset=".6832"/><stop id="stop25" stop-color="#414042" stop-opacity=".5" offset="1"/></radialGradient><path id="path34" d="m16 16" fill="url(#a)"/><g id="g4597" transform="matrix(.89618 0 0 .89618 35.067 29.248)"><rect id="rect2-6" x="-34.289" y="-27.796" width="26.026" height="26.026" ry="0" fill="#fab058" stroke="#000" stroke-miterlimit="2.1" stroke-width="1.5622"/>
+</g><g id="g4602" transform="matrix(.70181 0 0 .70181 -16.83 29.513)"><rect id="rect2-6-4" x="33.767" y="-32.267" width="26.026" height="26.026" ry="0" fill="#d5fa58" stroke="#000" stroke-miterlimit="2.1" stroke-width="1.9948"/><text id="text4553-1" x="36.864368" y="-10.030853" fill="#000000" font-family="Scriptina" font-size="25.304px" letter-spacing="0px" stroke-width=".79075px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7" x="36.864368" y="-10.030853" font-family="sans-serif" font-weight="bold" stroke-width=".79075px">B</tspan></text>
+</g></svg>
diff --git a/silx/resources/gui/icons/compare-align-origin.png b/silx/resources/gui/icons/compare-align-origin.png
new file mode 100644
index 0000000..e209ce2
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-origin.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-align-origin.svg b/silx/resources/gui/icons/compare-align-origin.svg
new file mode 100644
index 0000000..efccf50
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-origin.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg44" version="1.1" viewBox="0 0 32 32" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata50"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><radialGradient id="a" cx="22.443" cy="21.502" r="0" gradientTransform="translate(1.4237 -1.4237)" gradientUnits="userSpaceOnUse"><stop id="stop21" stop-color="#00aeef" stop-opacity=".6" offset="0"/><stop id="stop23" stop-color="#517180" stop-opacity=".5317" offset=".6832"/><stop id="stop25" stop-color="#414042" stop-opacity=".5" offset="1"/></radialGradient><path id="path34" d="m23.867 20.078" fill="url(#a)"/><g id="g4597" transform="matrix(.89618 0 0 .89618 35.067 29.248)"><rect id="rect2-6" x="-34.289" y="-27.796" width="26.026" height="26.026" ry="0" fill="#fab058" stroke="#000" stroke-miterlimit="2.1" stroke-width="1.5622"/>
+</g><g id="g4602" transform="matrix(.70181 0 0 .70181 -19.285 27.058)"><rect id="rect2-6-4" x="33.767" y="-32.267" width="26.026" height="26.026" ry="0" fill="#d5fa58" stroke="#000" stroke-miterlimit="2.1" stroke-width="1.9948"/><text id="text4553-1" x="36.864368" y="-10.030853" fill="#000000" font-family="Scriptina" font-size="25.304px" letter-spacing="0px" stroke-width=".79075px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7" x="36.864368" y="-10.030853" font-family="sans-serif" font-weight="bold" stroke-width=".79075px">B</tspan></text>
+</g></svg>
diff --git a/silx/resources/gui/icons/compare-align-stretch.png b/silx/resources/gui/icons/compare-align-stretch.png
new file mode 100644
index 0000000..707bcd1
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-stretch.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-align-stretch.svg b/silx/resources/gui/icons/compare-align-stretch.svg
new file mode 100644
index 0000000..4c4b653
--- /dev/null
+++ b/silx/resources/gui/icons/compare-align-stretch.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg44" version="1.1" viewBox="0 0 32 32" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata50"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><radialGradient id="a" cx="22.443" cy="21.502" r="0" gradientTransform="translate(-6.443 -5.502)" gradientUnits="userSpaceOnUse"><stop id="stop21" stop-color="#00aeef" stop-opacity=".6" offset="0"/><stop id="stop23" stop-color="#517180" stop-opacity=".5317" offset=".6832"/><stop id="stop25" stop-color="#414042" stop-opacity=".5" offset="1"/></radialGradient><path id="path34" d="m16 16" fill="url(#a)"/><g id="g4597" transform="matrix(.89618 0 0 .89618 35.067 29.248)"><rect id="rect2-6" x="-34.289" y="-27.796" width="26.026" height="26.026" ry="0" fill="#d5fa58" stroke="#000" stroke-miterlimit="2.1" stroke-width="1.5622"/>
+</g><g id="g4602" transform="matrix(.70866 0 0 .70866 -17.151 29.645)"><text id="text4553-1" x="36.864368" y="-10.030853" fill="#000000" font-family="Scriptina" font-size="25.304px" letter-spacing="0px" stroke-width=".79075px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7" x="36.864368" y="-10.030853" font-family="sans-serif" font-weight="bold" stroke-width=".79075px">B</tspan></text>
+</g><path id="rect969" d="m6.3051 6.1695h5.4237l-5.4237 5.4237z" color="#000000" fill="#f0f"/><path id="rect969-5" d="m26.034 6.1695h-5.4237l5.4237 5.4237z" color="#000000" fill="#f0f"/><path id="rect969-5-3" d="m26.034 25.763h-5.4237l5.4237-5.4237z" color="#000000" fill="#f0f"/><path id="rect969-5-3-5" d="m6.3051 25.763h5.4237l-5.4237-5.4237z" color="#000000" fill="#f0f"/></svg>
diff --git a/silx/resources/gui/icons/compare-keypoints.png b/silx/resources/gui/icons/compare-keypoints.png
new file mode 100644
index 0000000..0f93111
--- /dev/null
+++ b/silx/resources/gui/icons/compare-keypoints.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-keypoints.svg b/silx/resources/gui/icons/compare-keypoints.svg
new file mode 100644
index 0000000..9282526
--- /dev/null
+++ b/silx/resources/gui/icons/compare-keypoints.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg4" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata id="metadata10">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g id="g4597" transform="translate(37.276 30.783)">
+ <rect id="rect2-6" x="-34.289" y="-27.796" width="26.026" height="26.026" ry="0" fill="#f7941e" fill-opacity=".81569" stroke="#000" stroke-miterlimit="2" stroke-width="1.4"/>
+ </g>
+ <circle id="path825" cx="8.9167" cy="10.523" r="1.9176" color="#000000" fill="#f0f"/>
+ <circle id="path825-3" cx="12.177" cy="20.495" r="1.9176" color="#000000" fill="#f0f"/>
+ <circle id="path825-6" cx="17.45" cy="16.276" r="1.9176" color="#000000" fill="#f0f"/>
+</svg>
diff --git a/silx/resources/gui/icons/compare-mode-a.png b/silx/resources/gui/icons/compare-mode-a.png
new file mode 100644
index 0000000..f1158f9
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-a.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-mode-a.svg b/silx/resources/gui/icons/compare-mode-a.svg
new file mode 100644
index 0000000..57be2f3
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-a.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg4" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata id="metadata10">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <path id="rect2-6-4" d="m2.987 2.987h26.026v26.026h-26.026z" fill="#f8ac4f" stroke="#000" stroke-miterlimit="2" stroke-width="1.4"/>
+ <text id="text4553-1" x="6.208262" y="25.223385" fill="#000000" font-family="Scriptina" font-size="25.304px" letter-spacing="0px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7" x="6.208262" y="25.223385" font-family="sans-serif" font-weight="bold">A</tspan></text>
+</svg>
diff --git a/silx/resources/gui/icons/compare-mode-b.png b/silx/resources/gui/icons/compare-mode-b.png
new file mode 100644
index 0000000..58cd231
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-b.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-mode-b.svg b/silx/resources/gui/icons/compare-mode-b.svg
new file mode 100644
index 0000000..929c2c0
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-b.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg4" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata id="metadata10">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <rect id="rect2-6-4" x="2.987" y="2.987" width="26.026" height="26.026" ry="0" fill="#d5fa58" stroke="#000" stroke-miterlimit="2" stroke-width="1.4"/>
+ <text id="text4553-1" x="6.0847068" y="25.223385" fill="#000000" font-family="Scriptina" font-size="25.304px" letter-spacing="0px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7" x="6.0847068" y="25.223385" font-family="sans-serif" font-weight="bold">B</tspan></text>
+</svg>
diff --git a/silx/resources/gui/icons/compare-mode-hline.png b/silx/resources/gui/icons/compare-mode-hline.png
new file mode 100644
index 0000000..2a9d403
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-hline.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-mode-hline.svg b/silx/resources/gui/icons/compare-mode-hline.svg
new file mode 100644
index 0000000..9f9a2d4
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-hline.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg4" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata id="metadata10">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <rect id="rect2-6-4" x="2.987" y="2.987" width="26.026" height="26.026" ry="0" fill="#d5fa58" stroke="#000" stroke-miterlimit="2" stroke-width="1.4"/>
+ <path id="path4539" d="m15.796 15.165q1.1244 0 1.7051-0.49422 0.58071-0.49422 0.58071-1.458 0-0.95137-0.58071-1.4456-0.58071-0.50658-1.7051-0.50658h-2.6317v3.9043zm0.16062 8.0681q1.4332 0 2.1499-0.60542 0.72898-0.60542 0.72898-1.8286 0-1.1985-0.71662-1.7915-0.71662-0.60542-2.1622-0.60542h-2.7923v4.831zm4.4233-6.6349q1.5321 0.4448 2.3723 1.6433t0.84017 2.9406q0 2.6688-1.8039 3.9785t-5.4858 1.3097h-7.8952v-18.447h7.1415q3.8426 0 5.56 1.1614 1.7298 1.1614 1.7298 3.719 0 1.3468-0.63013 2.2981-0.63013 0.93902-1.8286 1.3962z"/>
+ <path id="rect2-6-9" d="m29.013 15.874v-12.887h-26.025v12.887" fill="#f8ac4f" stroke="#000" stroke-miterlimit="2" stroke-width="1.4"/>
+ <path id="path948" d="m13.165 5.1472-3.9746 10.727h4.6055l2.2109-6.4023 2.1992 6.4023h4.6035l-3.9746-10.727z"/>
+ <path id="path3715" d="m29.898 16h-27.797" fill="#f7941e" fill-opacity=".81569" fill-rule="evenodd" stroke="#00f" stroke-miterlimit="2" stroke-width="1.4"/>
+</svg>
diff --git a/silx/resources/gui/icons/compare-mode-rb-channel.png b/silx/resources/gui/icons/compare-mode-rb-channel.png
new file mode 100644
index 0000000..689c8a6
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-rb-channel.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-mode-rb-channel.svg b/silx/resources/gui/icons/compare-mode-rb-channel.svg
new file mode 100644
index 0000000..9bcadd7
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-rb-channel.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg4" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata id="metadata10">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <path id="path3034" transform="matrix(.94611 0 0 .94611 -3.5575 -5.4879)" d="m28.339 22.712c0 7.7507-5.069 14.034-11.322 14.034s-11.322-6.2832-11.322-14.034c0-7.7507 5.069-14.034 11.322-14.034s11.322 6.2832 11.322 14.034z" color="#000000" fill="#ff8000" stroke-width="1.057"/>
+ <path id="path3034-3" transform="matrix(.94611 0 0 .94611 3.3578 -5.4879)" d="m28.339 22.712c0 7.7507-5.069 14.034-11.322 14.034s-11.322-6.2832-11.322-14.034c0-7.7507 5.069-14.034 11.322-14.034s11.322 6.2832 11.322 14.034z" color="#000000" fill="#0080ff"/>
+ <path id="path3034-6" d="m16 3.4375c-4.216 1.7849-7.25 6.7321-7.25 12.562s3.034 10.778 7.25 12.562c4.216-1.7849 7.25-6.7321 7.25-12.562s-3.034-10.778-7.25-12.562z" color="#000000" fill="#808080"/>
+ <text id="text4553-1-3" x="17.196516" y="20.749096" fill="#000000" font-family="Scriptina" font-size="13.029px" letter-spacing="0px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7-6" x="17.196516" y="20.749096" fill="#000000" font-family="sans-serif" font-weight="bold">B</tspan></text>
+ <text id="text4553-7" x="6.0431499" y="20.749096" fill="#000000" font-family="Scriptina" font-size="13.029px" letter-spacing="0px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-5" x="6.0431499" y="20.749096" fill="#000000" font-family="sans-serif" font-weight="bold">A</tspan></text>
+</svg>
diff --git a/silx/resources/gui/icons/compare-mode-rbneg-channel.png b/silx/resources/gui/icons/compare-mode-rbneg-channel.png
new file mode 100644
index 0000000..53b339f
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-rbneg-channel.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-mode-rbneg-channel.svg b/silx/resources/gui/icons/compare-mode-rbneg-channel.svg
new file mode 100644
index 0000000..8c23e65
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-rbneg-channel.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg4" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata id="metadata10">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <path id="path3034" transform="matrix(.94611 0 0 .94611 -3.5575 -5.4879)" d="m28.339 22.712c0 7.7507-5.069 14.034-11.322 14.034s-11.322-6.2832-11.322-14.034c0-7.7507 5.069-14.034 11.322-14.034s11.322 6.2832 11.322 14.034z" color="#000000" fill="#ff8000"/>
+ <path id="path3034-3" transform="matrix(.94611 0 0 .94611 3.3578 -5.4879)" d="m28.339 22.712c0 7.7507-5.069 14.034-11.322 14.034s-11.322-6.2832-11.322-14.034c0-7.7507 5.069-14.034 11.322-14.034s11.322 6.2832 11.322 14.034z" color="#000000" fill="#0080ff"/>
+ <path id="path3034-6" d="m16 3.4375c-4.216 1.7849-7.25 6.7321-7.25 12.562s3.034 10.778 7.25 12.562c4.216-1.7849 7.25-6.7321 7.25-12.562s-3.034-10.778-7.25-12.562z" color="#000000" fill="#808080"/>
+ <text id="text4553-1-3" x="17.196516" y="20.749096" fill="#ffffff" font-family="Scriptina" font-size="13.029px" letter-spacing="0px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-7-6" x="17.196516" y="20.749096" fill="#ffffff" font-family="sans-serif" font-weight="bold">B</tspan></text>
+ <text id="text4553-7" x="6.0431499" y="20.749096" fill="#ffffff" font-family="Scriptina" font-size="13.029px" letter-spacing="0px" word-spacing="0px" style="line-height:125%" xml:space="preserve"><tspan id="tspan4551-5" x="6.0431499" y="20.749096" fill="#ffffff" font-family="sans-serif" font-weight="bold">A</tspan></text>
+</svg>
diff --git a/silx/resources/gui/icons/compare-mode-vline.png b/silx/resources/gui/icons/compare-mode-vline.png
new file mode 100644
index 0000000..fe12d9d
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-vline.png
Binary files differ
diff --git a/silx/resources/gui/icons/compare-mode-vline.svg b/silx/resources/gui/icons/compare-mode-vline.svg
new file mode 100644
index 0000000..06d74b3
--- /dev/null
+++ b/silx/resources/gui/icons/compare-mode-vline.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg4" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata id="metadata10">
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <path id="rect2-6-4" d="m2.987 2.987h26.026v26.026h-26.026z" fill="#d5fa58" stroke="#000" stroke-miterlimit="2" stroke-width="1.4"/>
+ <path id="path825" d="m17.932 13.918q1.1244 0 1.7051-0.49422t0.58071-1.458q0-0.95137-0.58071-1.4456-0.58071-0.50658-1.7051-0.50658h-2.6317v3.9043zm0.16062 8.0681q1.4332 0 2.1499-0.60542 0.72898-0.60542 0.72898-1.8286 0-1.1985-0.71662-1.7915-0.71662-0.60542-2.1622-0.60542h-2.7923v4.831zm4.4233-6.6349q1.5321 0.4448 2.3723 1.6433t0.84017 2.9406q0 2.6688-1.8039 3.9785t-5.4858 1.3097h-7.8952v-18.447h7.1415q3.8426 0 5.56 1.1614 1.7298 1.1614 1.7298 3.719 0 1.3468-0.63013 2.2981-0.63013 0.93902-1.8286 1.3962z"/>
+ <path id="rect2-6-5" d="m16.665 2.987h-13.678v26.025h13.678" fill="#f8ac4f" stroke="#000" stroke-miterlimit="2" stroke-width="1.4"/>
+ <path id="path11006" d="m11.231 6.7761-6.832 18.447h4.7813l1.1738-3.3613h6.3105v-15.086z"/>
+ <path id="path11011" d="m11.54 18.44h4.6005v-1.3189l-2.0676-6.0203z" fill="#f9a847"/>
+ <path id="path3715" d="m16 2.1017v27.797" fill="#f7941e" fill-opacity=".81569" fill-rule="evenodd" stroke="#00f" stroke-miterlimit="2" stroke-width="1.4"/>
+</svg>
diff --git a/silx/resources/gui/icons/math-mean.png b/silx/resources/gui/icons/math-mean.png
new file mode 100644
index 0000000..fb4a210
--- /dev/null
+++ b/silx/resources/gui/icons/math-mean.png
Binary files differ
diff --git a/silx/resources/gui/icons/math-mean.svg b/silx/resources/gui/icons/math-mean.svg
new file mode 100644
index 0000000..f6b121d
--- /dev/null
+++ b/silx/resources/gui/icons/math-mean.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="svg2" version="1.1" viewBox="0 0 32 32" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata39"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><linearGradient id="a" x1="7" x2="26.5" y1="16.334" y2="16.334" gradientUnits="userSpaceOnUse"><stop id="stop5" stop-color="#fff" offset="0"/><stop id="stop7" stop-color="#fdfdfd" stop-opacity=".9623" offset=".3769"/><stop id="stop9" stop-color="#f6f6f6" stop-opacity=".9487" offset=".5127"/><stop id="stop11" stop-color="#ebebeb" stop-opacity=".9391" offset=".6094"/><stop id="stop13" stop-color="#dadada" stop-opacity=".9312" offset=".6877"/><stop id="stop15" stop-color="#c4c4c4" stop-opacity=".9245" offset=".7548"/><stop id="stop17" stop-color="#a8a8a8" stop-opacity=".9186" offset=".8142"/><stop id="stop19" stop-color="#888" stop-opacity=".9132" offset=".8679"/><stop id="stop21" stop-color="#626262" stop-opacity=".9083" offset=".9172"/><stop id="stop23" stop-color="#393939" stop-opacity=".9039" offset=".9612"/><stop id="stop25" stop-color="#0e0e0e" stop-opacity=".9" offset="1"/></linearGradient><rect id="rect27" x="7.5" y="7.084" width="18.5" height="18.499" fill="none" stroke="url(#a)" stroke-miterlimit="10"/><line id="line29" x1="13.63" x2="2.9567" y1="2.3675" y2="2.3675" fill="none" stroke="#f7941e" stroke-miterlimit="10" stroke-width="2.1805"/><polyline id="polyline31" transform="matrix(.80328 0 0 .75496 -1.9272 -2.9807)" points="7.3 7.418 14.349 14.71 7.3 25.159" fill="none" stroke="#f7941e" stroke-miterlimit="10" stroke-width="2.8"/><line id="line33" x1="3.0418" x2="13.715" y1="16.333" y2="16.333" fill="none" stroke="#f7941e" stroke-miterlimit="10" stroke-width="2.1805"/><line id="line33-6" x1="20.761" x2="20.691" y1="17.987" y2="28.722" fill="none" stroke="#f7941e" stroke-miterlimit="10" stroke-width="2.6702"/><line id="line33-6-7" x1="20.154" x2="28.809" y1="19.095" y2="27.754" fill="none" stroke="#f7941e" stroke-miterlimit="10" stroke-width="2.8577"/><line id="line33-6-5" x1="29.13" x2="29.446" y1="17.877" y2="29.091" fill="none" stroke="#f7941e" stroke-miterlimit="10" stroke-width="2.7298"/><line id="line33-6-3" x1="27.823" x2="8.2448" y1="4.4883" y2="28.596" fill="none" stroke="#f7941e" stroke-miterlimit="10" stroke-width="2"/></svg>
diff --git a/silx/resources/opencl/bitonic.cl b/silx/resources/opencl/bitonic.cl
index f1cb55c..4096ce8 100644
--- a/silx/resources/opencl/bitonic.cl
+++ b/silx/resources/opencl/bitonic.cl
@@ -45,39 +45,40 @@
// The _FILE extension correspond to the formula found in the "OpenCL in Action" supplementary files
-#define VECTOR_SORT_FILE(input, dir) \
- comp = (input < shuffle(input, mask2)) ^ dir; \
- input = shuffle(input, as_uint4(comp * 2 + add2)); \
- comp = (input < shuffle(input, mask1)) ^ dir; \
- input = shuffle(input, as_uint4(comp + add1)); \
+#define VECTOR_SORT_FILE(input, dir)\
+ comp = (input < shuffle(input, mask2)) ^ dir;\
+ input = shuffle(input, as_uint4(comp * 2 + add2));\
+ comp = (input < shuffle(input, mask1)) ^ dir;\
+ input = shuffle(input, as_uint4(comp + add1));\
-#define VECTOR_SWAP_FILE(input1, input2, dir) \
- temp = input1; \
- comp = ((input1 < input2) ^ dir) * 4 + add3; \
- input1 = shuffle2(input1, input2, as_uint4(comp)); \
- input2 = shuffle2(input2, temp, as_uint4(comp)); \
+#define VECTOR_SWAP_FILE(input1, input2, dir)\
+ temp = input1;\
+ comp = ((input1 < input2) ^ dir) * 4 + add3;\
+ input1 = shuffle2(input1, input2, as_uint4(comp));\
+ input2 = shuffle2(input2, temp, as_uint4(comp));\
// Functions to be called from an actual kernel.
static float8 my_sort_file(uint local_id, uint group_id, uint local_size,
- float8 input, __local float4 *l_data){
+ float8 input, local float4 *l_data)
+{
float4 input1, input2, temp;
float8 output;
- int dir;
- uint id, size, stride;
- int4 comp;
+ int dir;
+ uint id, size, stride;
+ int4 comp;
- uint4 mask1 = (uint4)(1, 0, 3, 2);
- uint4 mask2 = (uint4)(2, 3, 0, 1);
- uint4 mask3 = (uint4)(3, 2, 1, 0);
+ uint4 mask1 = (uint4)(1, 0, 3, 2);
+ uint4 mask2 = (uint4)(2, 3, 0, 1);
+ uint4 mask3 = (uint4)(3, 2, 1, 0);
- int4 add1 = (int4)(1, 1, 3, 3);
- int4 add2 = (int4)(2, 3, 2, 3);
- int4 add3 = (int4)(1, 2, 2, 3);
+ int4 add1 = (int4)(1, 1, 3, 3);
+ int4 add2 = (int4)(2, 3, 2, 3);
+ int4 add3 = (int4)(1, 2, 2, 3);
// retrieve input data
input1 = (float4)(input.s0, input.s1, input.s2, input.s3);
@@ -86,86 +87,91 @@ static float8 my_sort_file(uint local_id, uint group_id, uint local_size,
// Find global address
id = local_id * 2;
- /* Sort input 1 - ascending */
- comp = input1 < shuffle(input1, mask1);
- input1 = shuffle(input1, as_uint4(comp + add1));
- comp = input1 < shuffle(input1, mask2);
- input1 = shuffle(input1, as_uint4(comp * 2 + add2));
- comp = input1 < shuffle(input1, mask3);
- input1 = shuffle(input1, as_uint4(comp + add3));
-
- /* Sort input 2 - descending */
- comp = input2 > shuffle(input2, mask1);
- input2 = shuffle(input2, as_uint4(comp + add1));
- comp = input2 > shuffle(input2, mask2);
- input2 = shuffle(input2, as_uint4(comp * 2 + add2));
- comp = input2 > shuffle(input2, mask3);
- input2 = shuffle(input2, as_uint4(comp + add3));
-
- /* Swap corresponding elements of input 1 and 2 */
- add3 = (int4)(4, 5, 6, 7);
- dir = - (int) (local_id % 2);
- temp = input1;
- comp = ((input1 < input2) ^ dir) * 4 + add3;
- input1 = shuffle2(input1, input2, as_uint4(comp));
- input2 = shuffle2(input2, temp, as_uint4(comp));
-
- /* Sort data and store in local memory */
- VECTOR_SORT_FILE(input1, dir);
- VECTOR_SORT_FILE(input2, dir);
- l_data[id] = input1;
- l_data[id+1] = input2;
-
- /* Create bitonic set */
- for(size = 2; size < local_size; size <<= 1) {
- dir = - (int) (local_id/size & 1) ;
-
- for(stride = size; stride > 1; stride >>= 1) {
- barrier(CLK_LOCAL_MEM_FENCE);
- id = local_id + (local_id/stride)*stride;
- VECTOR_SWAP_FILE(l_data[id], l_data[id + stride], dir)
- }
-
- barrier(CLK_LOCAL_MEM_FENCE);
- id = local_id * 2;
- input1 = l_data[id];
- input2 = l_data[id+1];
- temp = input1;
- comp = ((input1 < input2) ^ dir) * 4 + add3;
- input1 = shuffle2(input1, input2, as_uint4(comp));
- input2 = shuffle2(input2, temp, as_uint4(comp));
- VECTOR_SORT_FILE(input1, dir);
- VECTOR_SORT_FILE(input2, dir);
- l_data[id] = input1;
- l_data[id+1] = input2;
- }
-
- /* Perform bitonic merge */
- dir = - (int) (group_id % 2);
- for(stride = local_size; stride > 1; stride >>= 1) {
- barrier(CLK_LOCAL_MEM_FENCE);
- id = local_id + (local_id/stride)*stride;
- VECTOR_SWAP_FILE(l_data[id], l_data[id + stride], dir)
- }
- barrier(CLK_LOCAL_MEM_FENCE);
-
- /* Perform final sort */
- id = local_id * 2;
- input1 = l_data[id]; input2 = l_data[id+1];
- temp = input1;
- comp = ((input1 < input2) ^ dir) * 4 + add3;
- input1 = shuffle2(input1, input2, as_uint4(comp));
- input2 = shuffle2(input2, temp, as_uint4(comp));
- VECTOR_SORT_FILE(input1, dir);
- VECTOR_SORT_FILE(input2, dir);
-
- // setup output and return it
- output = (float8)(input1, input2);
- return output;
+ /* Sort input 1 - ascending */
+ comp = input1 < shuffle(input1, mask1);
+ input1 = shuffle(input1, as_uint4(comp + add1));
+ comp = input1 < shuffle(input1, mask2);
+ input1 = shuffle(input1, as_uint4(comp * 2 + add2));
+ comp = input1 < shuffle(input1, mask3);
+ input1 = shuffle(input1, as_uint4(comp + add3));
+
+ /* Sort input 2 - descending */
+ comp = input2 > shuffle(input2, mask1);
+ input2 = shuffle(input2, as_uint4(comp + add1));
+ comp = input2 > shuffle(input2, mask2);
+ input2 = shuffle(input2, as_uint4(comp * 2 + add2));
+ comp = input2 > shuffle(input2, mask3);
+ input2 = shuffle(input2, as_uint4(comp + add3));
+
+ /* Swap corresponding elements of input 1 and 2 */
+ add3 = (int4)(4, 5, 6, 7);
+ dir = - (int) (local_id % 2);
+ temp = input1;
+ comp = ((input1 < input2) ^ dir) * 4 + add3;
+ input1 = shuffle2(input1, input2, as_uint4(comp));
+ input2 = shuffle2(input2, temp, as_uint4(comp));
+
+ /* Sort data and store in local memory */
+ VECTOR_SORT_FILE(input1, dir);
+ VECTOR_SORT_FILE(input2, dir);
+ l_data[id] = input1;
+ l_data[id+1] = input2;
+ barrier(CLK_LOCAL_MEM_FENCE);
+
+ /* Create bitonic set */
+ for(size = 2; size < local_size; size <<= 1) {
+ dir = - (int) (local_id/size & 1) ;
+
+ for(stride = size; stride > 1; stride >>= 1) {
+ barrier(CLK_LOCAL_MEM_FENCE);
+ id = local_id + (local_id/stride)*stride;
+ VECTOR_SWAP_FILE(l_data[id], l_data[id + stride], dir)
+ }
+
+ barrier(CLK_LOCAL_MEM_FENCE);
+ id = local_id * 2;
+ input1 = l_data[id];
+ input2 = l_data[id+1];
+ temp = input1;
+ comp = ((input1 < input2) ^ dir) * 4 + add3;
+ input1 = shuffle2(input1, input2, as_uint4(comp));
+ input2 = shuffle2(input2, temp, as_uint4(comp));
+ VECTOR_SORT_FILE(input1, dir);
+ VECTOR_SORT_FILE(input2, dir);
+ l_data[id] = input1;
+ l_data[id+1] = input2;
+ barrier(CLK_LOCAL_MEM_FENCE);
+ }
+
+ /* Perform bitonic merge */
+ dir = - (int) (group_id % 2);
+ for(stride = local_size; stride > 1; stride >>= 1)
+ {
+ barrier(CLK_LOCAL_MEM_FENCE);
+ id = local_id + (local_id/stride)*stride;
+ VECTOR_SWAP_FILE(l_data[id], l_data[id + stride], dir)
+ }
+ barrier(CLK_LOCAL_MEM_FENCE);
+
+ /* Perform final sort */
+ id = local_id * 2;
+ input1 = l_data[id];
+ input2 = l_data[id+1];
+ temp = input1;
+ comp = ((input1 < input2) ^ dir) * 4 + add3;
+ input1 = shuffle2(input1, input2, as_uint4(comp));
+ input2 = shuffle2(input2, temp, as_uint4(comp));
+ VECTOR_SORT_FILE(input1, dir);
+ VECTOR_SORT_FILE(input2, dir);
+
+ // setup output and return it
+ output = (float8)(input1, input2);
+ return output;
}
static float8 my_sort_book(uint local_id, uint group_id, uint local_size,
- float8 input, __local float4 *l_data){
+ float8 input, local float4 *l_data)
+{
float4 input1, input2, temp;
float8 output;
uint4 comp, swap, mask1, mask2, add1, add2, add3;
@@ -213,11 +219,13 @@ static float8 my_sort_book(uint local_id, uint group_id, uint local_size,
l_data[id+1] = input2;
// Perform upper stages
- for(size = 2; size < local_size; size <<= 1) {
+ for(size = 2; size < local_size; size <<= 1)
+ {
dir = local_id/size & 1;
//Perform lower stages
- for(stride = size; stride > 1; stride >>= 1) {
+ for(stride = size; stride > 1; stride >>= 1)
+ {
barrier(CLK_LOCAL_MEM_FENCE);
id = local_id + (local_id/stride)*stride;
VECTOR_SWAP_BOOK(l_data[id], l_data[id + stride], dir)
@@ -239,7 +247,8 @@ static float8 my_sort_book(uint local_id, uint group_id, uint local_size,
dir = group_id % 2;
// Perform bitonic merge
- for(stride = local_size; stride > 1; stride >>= 1) {
+ for(stride = local_size; stride > 1; stride >>= 1)
+ {
barrier(CLK_LOCAL_MEM_FENCE);
id = local_id + (local_id/stride)*stride;
VECTOR_SWAP_BOOK(l_data[id], l_data[id + stride], dir)
@@ -269,8 +278,9 @@ static float8 my_sort_book(uint local_id, uint group_id, uint local_size,
// Perform the sort on the whole array
// dim0: wg=number_of_element/8
-__kernel void bsort_all(__global float4 *g_data,
- __local float4 *l_data) {
+kernel void bsort_all(global float4 *g_data,
+ local float4 *l_data)
+{
float4 input1, input2;
float8 input, output;
uint id, global_start;
@@ -293,8 +303,9 @@ __kernel void bsort_all(__global float4 *g_data,
// Perform the sort along the horizontal axis of a 2D image
// dim0 = y: wg=1
// dim1 = x: wg=number_of_element/8
-__kernel void bsort_horizontal(__global float *g_data,
- __local float4 *l_data) {
+kernel void bsort_horizontal(global float *g_data,
+ local float4 *l_data)
+{
float8 input, output;
uint id, global_start, offset;
@@ -331,8 +342,9 @@ __kernel void bsort_horizontal(__global float *g_data,
// dim1 = x: wg=1
// check if transposing +bsort_horizontal is not more efficient ?
-__kernel void bsort_vertical(__global float *g_data,
- __local float4 *l_data) {
+kernel void bsort_vertical(global float *g_data,
+ local float4 *l_data)
+{
// we need to read 8 float position along the vertical axis
float8 input, output;
uint id, global_start, padding;
@@ -342,7 +354,7 @@ __kernel void bsort_vertical(__global float *g_data,
id = get_local_id(0) * 8 * padding + get_global_id(1);
global_start = get_group_id(0) * get_local_size(0) * 8 * padding + id;
- input = (float8)(g_data[global_start ],
+ input = (float8)(g_data[global_start ],
g_data[global_start + padding ],
g_data[global_start + 2*padding],
g_data[global_start + 3*padding],
@@ -365,8 +377,8 @@ __kernel void bsort_vertical(__global float *g_data,
//Tested working reference kernel frm the book. This only works under Linux
-__kernel void bsort_book(__global float4 *g_data,
- __local float4 *l_data) {
+kernel void bsort_book(global float4 *g_data,
+ local float4 *l_data) {
float4 input1, input2, temp;
uint4 comp, swap, mask1, mask2, add1, add2, add3;
uint id, dir, global_start, size, stride;
@@ -459,7 +471,7 @@ __kernel void bsort_book(__global float4 *g_data,
//Tested working reference kernel from the addition files. This only works under any operating system
/* Perform initial sort */
-__kernel void bsort_file(__global float4 *g_data, __local float4 *l_data) {
+kernel void bsort_file(global float4 *g_data, local float4 *l_data) {
int dir;
uint id, global_start, size, stride;
diff --git a/silx/resources/opencl/linalg.cl b/silx/resources/opencl/linalg.cl
index 82a76eb..8710528 100644
--- a/silx/resources/opencl/linalg.cl
+++ b/silx/resources/opencl/linalg.cl
@@ -33,25 +33,25 @@
* sizeY: number of rows of the image
*
**/
-__kernel void kern_gradient2D(
- __global float* slice,
- __global float2* slice_grad,
+kernel void kern_gradient2D(
+ global float* slice,
+ global float2* slice_grad,
int sizeX,
int sizeY)
{
- uint gidx = get_global_id(0);
- uint gidy = get_global_id(1);
- float val_x = 0, val_y = 0;
+ int gidx = (int) get_global_id(0);
+ int gidy = (int) get_global_id(1);
- if (gidx < sizeX && gidy < sizeY) {
- if (gidx == sizeX-1) val_y = 0;
- else val_y = slice[(gidy)*sizeX+gidx+1] - slice[(gidy)*sizeX+gidx];
- if (gidy == sizeY-1) val_x = 0;
- else val_x = slice[(gidy+1)*sizeX+gidx] - slice[(gidy)*sizeX+gidx];
+ if ((gidx < sizeX) && (gidy < sizeY))
+ {
+ // Note the direction inconstancy ! (JK 07/2018)
- slice_grad[(gidy)*sizeX+gidx].x = val_x;
- slice_grad[(gidy)*sizeX+gidx].y = val_y;
+ float val_y = (gidx == (sizeX-1))? 0: slice[gidy*sizeX+gidx+1] - slice[gidy*sizeX+gidx];
+ float val_x = (gidy == (sizeY-1))? 0: slice[(gidy+1)*sizeX+gidx] - slice[(gidy)*sizeX+gidx];
+
+ slice_grad[gidy*sizeX+gidx].x = val_x;
+ slice_grad[gidy*sizeX+gidx].y = val_y;
}
}
@@ -65,25 +65,24 @@ __kernel void kern_gradient2D(
* sizeY: number of rows of the input
*
**/
-__kernel void kern_divergence2D(
- __global float2* slice_grad,
- __global float* slice,
+kernel void kern_divergence2D(
+ global float2* slice_grad,
+ global float* slice,
int sizeX,
int sizeY)
{
- uint gidx = get_global_id(0);
- uint gidy = get_global_id(1);
- float val_x = 0, val_y = 0;
+ int gidx = (int) get_global_id(0);
+ int gidy = (int) get_global_id(1);
- if (gidx < sizeX && gidy < sizeY) {
- if (gidx == 0) val_y = slice_grad[(gidy)*sizeX+gidx].y;
- else val_y = slice_grad[(gidy)*sizeX+gidx].y - slice_grad[(gidy)*sizeX+gidx-1].y;
- if (gidy == 0) val_x = slice_grad[(gidy)*sizeX+gidx].x;
- else val_x = slice_grad[(gidy)*sizeX+gidx].x - slice_grad[(gidy-1)*sizeX+gidx].x;
- slice[(gidy)*sizeX+gidx] = val_x + val_y;
+ if (gidx < sizeX && gidy < sizeY)
+ {
+ float val_x, val_y;
+ val_y = (gidx == 0)?
+ slice_grad[(gidy)*sizeX+gidx].y :
+ slice_grad[(gidy)*sizeX+gidx].y - slice_grad[(gidy)*sizeX+gidx-1].y;
+ val_x = (gidy == 0)?
+ slice_grad[(gidy)*sizeX+gidx].x:
+ slice_grad[(gidy)*sizeX+gidx].x - slice_grad[(gidy-1)*sizeX+gidx].x;
+ slice[gidy*sizeX+gidx] = val_x + val_y;
}
}
-
-
-
-
diff --git a/silx/resources/opencl/medfilt.cl b/silx/resources/opencl/medfilt.cl
index f1e342b..0680230 100644
--- a/silx/resources/opencl/medfilt.cl
+++ b/silx/resources/opencl/medfilt.cl
@@ -64,7 +64,7 @@ __kernel void medfilt2d(__global float *image, // input image
int width) // Image size along dim2 (nb columns)
{
int threadid = get_local_id(0);
- int wg = get_local_size(0);
+ //int wg = get_local_size(0);
int x = get_global_id(1);
if (x < width)