Compare commits

...

2 commits

Author SHA1 Message Date
f08f022856
Finalized presentation for today
Some checks failed
/ build (push) Failing after 1m1s
2025-06-24 16:34:41 +02:00
74e8413532
More work on presentation 2025-06-23 21:58:47 +02:00
22 changed files with 14711 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -0,0 +1,34 @@
#import "@preview/cetz:0.3.4": canvas
#import "@preview/cetz-plot:0.1.1": plot, chart
#let ymax = 1/calc.sqrt(2*calc.pi)
#let line_style = (stroke: (paint: black, thickness: 3pt))
#let dashed = (stroke: (dash: "dashed"))
#canvas({
plot.plot(size: (11,6),
legend: "north",
legend-style: (orientation: ltr, item: (spacing: 0.5)),
x-tick-step: none,
x-ticks: ((0, [0]), (100, [0])),
y-label: $cal(Q)(1, x)$,
x-label: $x$,
y-tick-step: none,
y-ticks: ((0, [0]), (ymax, [1])),
axis-style: "left",
x-min: -3,
x-max: 3,
y-min: 0,
y-max: ymax,{
plot.add(
plot.sample-fn(
(x) => 1/calc.sqrt(2*calc.pi)*calc.exp(-(calc.pow(x,2)/2)),
(-3, 3),
300),
style: (stroke: (paint: red, thickness: 3pt)),
// label: [PDF einer Normalverteilung]
)
plot.add(((-3,0), (0,0), (0,ymax), (3,ymax)), style: line_style, /*label: [$cal(Q)(1,x)$]*/)
})
})

View file

@ -0,0 +1,26 @@
#import "@preview/cetz:0.3.4": canvas, draw, palette
#import "@preview/cetz-plot:0.1.1": plot, chart
#let line_style = (stroke: (paint: black, thickness: 3pt))
#let dashed = (stroke: (dash: "dashed"))
#canvas({
import draw: *
set-style(axes: (shared-zero: false))
plot.plot(size: (8,6),
x-tick-step: none,
x-ticks: ((0.25, [$g_1$]), (0.5, [0]), (0.75, [$g_2$])),
y-label: $cal(Q)(2, 1, tilde(x))$,
x-label: $tilde(x)$,
y-tick-step: none,
y-ticks: ((0.25, [00]), (0.5, [01]), (0.75, [10]), (1, [11])),
axis-style: "left",
//x-min: 0,
x-max: 1,
y-min: 0,
y-max: 1,{
plot.add(((0,0.25), (0.25,0.25), (0.5,0.5), (0.75,0.75), (1, 1)), line: "vh", style: line_style)
//plot.add(((0,0), (0,0)), style: (stroke: none))
plot.add-hline(0.25, 0.5, 0.75, 1, style: dashed)
plot.add-vline(0.25, 0.5, 0.75, 1, style: dashed)
})
})

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,27 @@
#import "@preview/cetz:0.3.4": canvas
#import "@preview/cetz-plot:0.1.1": plot, chart
#let data = csv("./z_distribution.csv")
#let data = data.map(value => value.map(v => float(v)))
#let line_style = (stroke: (paint: black, thickness: 3pt))
#let dashed = (stroke: (dash: "dashed"))
#canvas({
plot.plot(size: (11,5),
legend : "south",
legend-style: (orientation: ltr, item: (spacing: 0.5)),
x-tick-step: none,
x-ticks: ((0, [0]), (100, [0])),
y-label: $cal(Q)(1, z), abs(f_"Z" (z))$,
x-label: $z$,
y-tick-step: none,
y-ticks: ((0, [0]), (0.6, [1])),
axis-style: "left",
x-min: -5,
x-max: 5,
y-min: 0,
y-max: 0.6,{
plot.add((data), style: (stroke: (paint: red, thickness: 3pt)), /*label: [Optimierte PDF]*/)
plot.add(((-5, 0), (0, 0), (0, 0.6), (5, 0.6)), style: line_style, /*label: [Quantisierer]*/)
})
})

3145
graphics/bruteforce_dist.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 183 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 183 KiB

View file

@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:gadfly="http://www.gadflyjl.org/ns"
version="1.2"
width="152.4mm" height="101.6mm" viewBox="0 0 152.4 101.6"
stroke="none"
fill="#000000"
stroke-width="0.3"
font-size="3.88"
>
<defs>
<marker id="arrow" markerWidth="15" markerHeight="7" refX="5" refY="3.5" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L15,3.5 L0,7 z" stroke="context-stroke" fill="context-stroke"/>
</marker>
</defs>
<g class="plotroot yscalable" id="img-66ce13a5-1">
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-66ce13a5-2">
<g transform="translate(79.52,89.99)">
<g class="primitive">
<text text-anchor="middle" dy="0.6em">Bool Vector</text>
</g>
</g>
</g>
<g class="guide xlabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-66ce13a5-3">
<g transform="translate(39.92,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [0], [1]]</text>
</g>
</g>
<g transform="translate(66.32,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [0], [0]]</text>
</g>
</g>
<g transform="translate(92.72,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [1], [1]]</text>
</g>
</g>
<g transform="translate(119.12,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [1], [0]]</text>
</g>
</g>
</g>
<g class="guide colorkey" id="img-66ce13a5-4">
<g fill="#4C404B" font-size="2.82" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" id="img-66ce13a5-5">
<g transform="translate(136.13,27.73)" id="img-66ce13a5-6" class="color_Symbol_1">
<g class="primitive">
<text dy="0.35em">Symbol 1</text>
</g>
</g>
<g transform="translate(136.13,31.35)" id="img-66ce13a5-7" class="color_Symbol_2">
<g class="primitive">
<text dy="0.35em">Symbol 2</text>
</g>
</g>
<g transform="translate(136.13,34.98)" id="img-66ce13a5-8" class="color_Symbol_3">
<g class="primitive">
<text dy="0.35em">Symbol 3</text>
</g>
</g>
<g transform="translate(136.13,38.61)" id="img-66ce13a5-9" class="color_Symbol_4">
<g class="primitive">
<text dy="0.35em">Symbol 4</text>
</g>
</g>
</g>
<g fill-opacity="1" id="img-66ce13a5-10">
<g transform="translate(134.23,27.73)" id="img-66ce13a5-11" class="color_Symbol_1" stroke="#FFFFFF" fill="#00BFFF">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,31.35)" id="img-66ce13a5-12" class="color_Symbol_2" stroke="#FFFFFF" fill="#D4CA3A">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,34.98)" id="img-66ce13a5-13" class="color_Symbol_3" stroke="#FFFFFF" fill="#FF6DAE">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,38.61)" id="img-66ce13a5-14" class="color_Symbol_4" stroke="#FFFFFF" fill="#00B78D">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
</g>
<g fill="#362A35" font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" stroke="#000000" stroke-opacity="0.000" id="img-66ce13a5-15">
<g transform="translate(133.32,23.91)" id="img-66ce13a5-16">
<g class="primitive">
<text dy="-0em">Source</text>
</g>
</g>
</g>
</g>
<g clip-path="url(#img-66ce13a5-17)">
<g id="img-66ce13a5-18">
<g pointer-events="visible" stroke-width="0.3" fill="#000000" fill-opacity="0.000" stroke="#000000" stroke-opacity="0.000" class="guide background" id="img-66ce13a5-19">
<g transform="translate(79.52,31.35)" id="img-66ce13a5-20">
<path d="M-52.8,-20.74 L52.8,-20.74 52.8,20.74 -52.8,20.74 z" class="primitive"/>
</g>
</g>
<g class="guide ygridlines xfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-66ce13a5-21">
<g transform="translate(79.52,50.09)" id="img-66ce13a5-22">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,42.6)" id="img-66ce13a5-23">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,35.1)" id="img-66ce13a5-24">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,27.6)" id="img-66ce13a5-25">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,20.11)" id="img-66ce13a5-26">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,12.61)" id="img-66ce13a5-27">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
</g>
<g class="guide xgridlines yfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-66ce13a5-28">
<g transform="translate(53.12,31.35)" id="img-66ce13a5-29">
<path fill="none" d="M0,-20.74 L0,20.74 " class="primitive"/>
</g>
<g transform="translate(79.52,31.35)" id="img-66ce13a5-30">
<path fill="none" d="M0,-20.74 L0,20.74 " class="primitive"/>
</g>
<g transform="translate(105.92,31.35)" id="img-66ce13a5-31">
<path fill="none" d="M0,-20.74 L0,20.74 " class="primitive"/>
</g>
</g>
<g class="plotpanel" id="img-66ce13a5-32">
<metadata>
<boundingbox value="26.724999999999994mm 10.611666666666665mm 105.59499999999997mm 41.48333333333333mm"/>
<unitbox value="0.5 105335.70475767007 4.0 -110671.40951534016"/>
</metadata>
<g shape-rendering="crispEdges" stroke-width="0.3" id="img-66ce13a5-33">
<g stroke="#000000" stroke-opacity="0.000" class="geometry" id="img-66ce13a5-34">
<g transform="translate(39.92,46.24)" id="img-66ce13a5-35" fill="#00B78D">
<path d="M-13.22,-3.85 L13.22,-3.85 13.22,3.85 -13.22,3.85 z" class="primitive"/>
</g>
<g transform="translate(66.32,46.27)" id="img-66ce13a5-36" fill="#00B78D">
<path d="M-13.22,-3.82 L13.22,-3.82 13.22,3.82 -13.22,3.82 z" class="primitive"/>
</g>
<g transform="translate(92.72,46.24)" id="img-66ce13a5-37" fill="#00B78D">
<path d="M-13.22,-3.85 L13.22,-3.85 13.22,3.85 -13.22,3.85 z" class="primitive"/>
</g>
<g transform="translate(119.12,46.2)" id="img-66ce13a5-38" fill="#00B78D">
<path d="M-13.22,-3.9 L13.22,-3.9 13.22,3.9 -13.22,3.9 z" class="primitive"/>
</g>
<g transform="translate(39.92,38.44)" id="img-66ce13a5-39" fill="#FF6DAE">
<path d="M-13.22,-3.95 L13.22,-3.95 13.22,3.95 -13.22,3.95 z" class="primitive"/>
</g>
<g transform="translate(66.32,38.5)" id="img-66ce13a5-40" fill="#FF6DAE">
<path d="M-13.22,-3.95 L13.22,-3.95 13.22,3.95 -13.22,3.95 z" class="primitive"/>
</g>
<g transform="translate(92.72,38.46)" id="img-66ce13a5-41" fill="#FF6DAE">
<path d="M-13.22,-3.93 L13.22,-3.93 13.22,3.93 -13.22,3.93 z" class="primitive"/>
</g>
<g transform="translate(119.12,38.33)" id="img-66ce13a5-42" fill="#FF6DAE">
<path d="M-13.22,-3.96 L13.22,-3.96 13.22,3.96 -13.22,3.96 z" class="primitive"/>
</g>
<g transform="translate(39.92,30.59)" id="img-66ce13a5-43" fill="#D4CA3A">
<path d="M-13.22,-3.9 L13.22,-3.9 13.22,3.9 -13.22,3.9 z" class="primitive"/>
</g>
<g transform="translate(66.32,30.68)" id="img-66ce13a5-44" fill="#D4CA3A">
<path d="M-13.22,-3.88 L13.22,-3.88 13.22,3.88 -13.22,3.88 z" class="primitive"/>
</g>
<g transform="translate(92.72,30.6)" id="img-66ce13a5-45" fill="#D4CA3A">
<path d="M-13.22,-3.93 L13.22,-3.93 13.22,3.93 -13.22,3.93 z" class="primitive"/>
</g>
<g transform="translate(119.12,30.47)" id="img-66ce13a5-46" fill="#D4CA3A">
<path d="M-13.22,-3.9 L13.22,-3.9 13.22,3.9 -13.22,3.9 z" class="primitive"/>
</g>
<g transform="translate(39.92,22.8)" id="img-66ce13a5-47" fill="#00BFFF">
<path d="M-13.22,-3.89 L13.22,-3.89 13.22,3.89 -13.22,3.89 z" class="primitive"/>
</g>
<g transform="translate(66.32,22.85)" id="img-66ce13a5-48" fill="#00BFFF">
<path d="M-13.22,-3.95 L13.22,-3.95 13.22,3.95 -13.22,3.95 z" class="primitive"/>
</g>
<g transform="translate(92.72,22.75)" id="img-66ce13a5-49" fill="#00BFFF">
<path d="M-13.22,-3.91 L13.22,-3.91 13.22,3.91 -13.22,3.91 z" class="primitive"/>
</g>
<g transform="translate(119.12,22.68)" id="img-66ce13a5-50" fill="#00BFFF">
<path d="M-13.22,-3.9 L13.22,-3.9 13.22,3.9 -13.22,3.9 z" class="primitive"/>
</g>
</g>
</g>
</g>
</g>
</g>
<g class="guide ylabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-66ce13a5-51">
<g transform="translate(25.72,50.09)" id="img-66ce13a5-52">
<g class="primitive">
<text text-anchor="end" dy="0.35em">0</text>
</g>
</g>
<g transform="translate(25.72,42.6)" id="img-66ce13a5-53">
<g class="primitive">
<text text-anchor="end" dy="0.35em">2.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,35.1)" id="img-66ce13a5-54">
<g class="primitive">
<text text-anchor="end" dy="0.35em">4.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,27.6)" id="img-66ce13a5-55">
<g class="primitive">
<text text-anchor="end" dy="0.35em">6.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,20.11)" id="img-66ce13a5-56">
<g class="primitive">
<text text-anchor="end" dy="0.35em">8.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,12.61)" id="img-66ce13a5-57">
<g class="primitive">
<text text-anchor="end" dy="0.35em">1.0×10⁵</text>
</g>
</g>
</g>
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-66ce13a5-58">
<g transform="translate(8.81,29.35)" id="img-66ce13a5-59">
<g class="primitive">
<text text-anchor="middle" dy="0.35em" transform="rotate(-90,0, 2)">Count</text>
</g>
</g>
</g>
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-66ce13a5-60">
<g transform="translate(79.52,5)" id="img-66ce13a5-61">
<g class="primitive">
<text text-anchor="middle" dy="0.6em">Helper Data occurrences by quantized bits</text>
</g>
</g>
</g>
</g>
<defs>
<clipPath id="img-66ce13a5-17">
<path d="M26.72,10.61 L132.32,10.61 132.32,52.09 26.72,52.09 " />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,298 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:gadfly="http://www.gadflyjl.org/ns"
version="1.2"
width="152.4mm" height="101.6mm" viewBox="0 0 152.4 101.6"
stroke="none"
fill="#000000"
stroke-width="0.3"
font-size="3.88"
>
<defs>
<marker id="arrow" markerWidth="15" markerHeight="7" refX="5" refY="3.5" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L15,3.5 L0,7 z" stroke="context-stroke" fill="context-stroke"/>
</marker>
</defs>
<g class="plotroot yscalable" id="img-3444a34b-1">
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-3444a34b-2">
<g transform="translate(79.52,89.99)">
<g class="primitive">
<text text-anchor="middle" dy="0.6em">Bool Vector</text>
</g>
</g>
</g>
<g class="guide xlabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-3444a34b-3">
<g transform="translate(39.92,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [0], [1]]</text>
</g>
</g>
<g transform="translate(66.32,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [0], [0]]</text>
</g>
</g>
<g transform="translate(92.72,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [1], [1]]</text>
</g>
</g>
<g transform="translate(119.12,53.09)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0], [1], [0]]</text>
</g>
</g>
</g>
<g class="guide colorkey" id="img-3444a34b-4">
<g fill="#4C404B" font-size="2.82" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" id="img-3444a34b-5">
<g transform="translate(136.13,20.47)" id="img-3444a34b-6" class="color_Symbol_1">
<g class="primitive">
<text dy="0.35em">Symbol 1</text>
</g>
</g>
<g transform="translate(136.13,24.1)" id="img-3444a34b-7" class="color_Symbol_2">
<g class="primitive">
<text dy="0.35em">Symbol 2</text>
</g>
</g>
<g transform="translate(136.13,27.73)" id="img-3444a34b-8" class="color_Symbol_3">
<g class="primitive">
<text dy="0.35em">Symbol 3</text>
</g>
</g>
<g transform="translate(136.13,31.35)" id="img-3444a34b-9" class="color_Symbol_4">
<g class="primitive">
<text dy="0.35em">Symbol 4</text>
</g>
</g>
<g transform="translate(136.13,34.98)" id="img-3444a34b-10" class="color_Symbol_5">
<g class="primitive">
<text dy="0.35em">Symbol 5</text>
</g>
</g>
<g transform="translate(136.13,38.61)" id="img-3444a34b-11" class="color_Symbol_6">
<g class="primitive">
<text dy="0.35em">Symbol 6</text>
</g>
</g>
<g transform="translate(136.13,42.23)" id="img-3444a34b-12" class="color_Symbol_7">
<g class="primitive">
<text dy="0.35em">Symbol 7</text>
</g>
</g>
<g transform="translate(136.13,45.86)" id="img-3444a34b-13" class="color_Symbol_8">
<g class="primitive">
<text dy="0.35em">Symbol 8</text>
</g>
</g>
</g>
<g fill-opacity="1" id="img-3444a34b-14">
<g transform="translate(134.23,20.47)" id="img-3444a34b-15" class="color_Symbol_1" stroke="#FFFFFF" fill="#00BFFF">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,24.1)" id="img-3444a34b-16" class="color_Symbol_2" stroke="#FFFFFF" fill="#D4CA3A">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,27.73)" id="img-3444a34b-17" class="color_Symbol_3" stroke="#FFFFFF" fill="#FF6DAE">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,31.35)" id="img-3444a34b-18" class="color_Symbol_4" stroke="#FFFFFF" fill="#00B78D">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,34.98)" id="img-3444a34b-19" class="color_Symbol_5" stroke="#FFFFFF" fill="#BEA9FF">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,38.61)" id="img-3444a34b-20" class="color_Symbol_6" stroke="#FFFFFF" fill="#FF6765">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,42.23)" id="img-3444a34b-21" class="color_Symbol_7" stroke="#FFFFFF" fill="#C6C6C6">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,45.86)" id="img-3444a34b-22" class="color_Symbol_8" stroke="#FFFFFF" fill="#63DF75">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
</g>
<g fill="#362A35" font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" stroke="#000000" stroke-opacity="0.000" id="img-3444a34b-23">
<g transform="translate(133.32,16.65)" id="img-3444a34b-24">
<g class="primitive">
<text dy="-0em">Source</text>
</g>
</g>
</g>
</g>
<g clip-path="url(#img-3444a34b-25)">
<g id="img-3444a34b-26">
<g pointer-events="visible" stroke-width="0.3" fill="#000000" fill-opacity="0.000" stroke="#000000" stroke-opacity="0.000" class="guide background" id="img-3444a34b-27">
<g transform="translate(79.52,31.35)" id="img-3444a34b-28">
<path d="M-52.8,-20.74 L52.8,-20.74 52.8,20.74 -52.8,20.74 z" class="primitive"/>
</g>
</g>
<g class="guide ygridlines xfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-3444a34b-29">
<g transform="translate(79.52,50.1)" id="img-3444a34b-30">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,31.35)" id="img-3444a34b-31">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,12.61)" id="img-3444a34b-32">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
</g>
<g class="guide xgridlines yfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-3444a34b-33">
<g transform="translate(53.12,31.35)" id="img-3444a34b-34">
<path fill="none" d="M0,-20.74 L0,20.74 " class="primitive"/>
</g>
<g transform="translate(79.52,31.35)" id="img-3444a34b-35">
<path fill="none" d="M0,-20.74 L0,20.74 " class="primitive"/>
</g>
<g transform="translate(105.92,31.35)" id="img-3444a34b-36">
<path fill="none" d="M0,-20.74 L0,20.74 " class="primitive"/>
</g>
</g>
<g class="plotpanel" id="img-3444a34b-37">
<metadata>
<boundingbox value="26.724999999999994mm 10.611666666666665mm 105.59499999999997mm 41.483333333333334mm"/>
<unitbox value="0.5 105335.70475767007 4.0 -110671.40951534016"/>
</metadata>
<g shape-rendering="crispEdges" stroke-width="0.3" id="img-3444a34b-38">
<g stroke="#000000" stroke-opacity="0.000" class="geometry" id="img-3444a34b-39">
<g transform="translate(39.92,48.17)" id="img-3444a34b-40" fill="#63DF75">
<path d="M-13.22,-1.92 L13.22,-1.92 13.22,1.92 -13.22,1.92 z" class="primitive"/>
</g>
<g transform="translate(66.32,48.16)" id="img-3444a34b-41" fill="#63DF75">
<path d="M-13.22,-1.93 L13.22,-1.93 13.22,1.93 -13.22,1.93 z" class="primitive"/>
</g>
<g transform="translate(92.72,48.14)" id="img-3444a34b-42" fill="#63DF75">
<path d="M-13.22,-1.96 L13.22,-1.96 13.22,1.96 -13.22,1.96 z" class="primitive"/>
</g>
<g transform="translate(119.12,48.12)" id="img-3444a34b-43" fill="#63DF75">
<path d="M-13.22,-1.97 L13.22,-1.97 13.22,1.97 -13.22,1.97 z" class="primitive"/>
</g>
<g transform="translate(39.92,44.36)" id="img-3444a34b-44" fill="#C6C6C6">
<path d="M-13.22,-1.89 L13.22,-1.89 13.22,1.89 -13.22,1.89 z" class="primitive"/>
</g>
<g transform="translate(66.32,44.26)" id="img-3444a34b-45" fill="#C6C6C6">
<path d="M-13.22,-1.97 L13.22,-1.97 13.22,1.97 -13.22,1.97 z" class="primitive"/>
</g>
<g transform="translate(92.72,44.22)" id="img-3444a34b-46" fill="#C6C6C6">
<path d="M-13.22,-1.95 L13.22,-1.95 13.22,1.95 -13.22,1.95 z" class="primitive"/>
</g>
<g transform="translate(119.12,44.18)" id="img-3444a34b-47" fill="#C6C6C6">
<path d="M-13.22,-1.97 L13.22,-1.97 13.22,1.97 -13.22,1.97 z" class="primitive"/>
</g>
<g transform="translate(39.92,40.5)" id="img-3444a34b-48" fill="#FF6765">
<path d="M-13.22,-1.97 L13.22,-1.97 13.22,1.97 -13.22,1.97 z" class="primitive"/>
</g>
<g transform="translate(66.32,40.34)" id="img-3444a34b-49" fill="#FF6765">
<path d="M-13.22,-1.96 L13.22,-1.96 13.22,1.96 -13.22,1.96 z" class="primitive"/>
</g>
<g transform="translate(92.72,40.41)" id="img-3444a34b-50" fill="#FF6765">
<path d="M-13.22,-1.86 L13.22,-1.86 13.22,1.86 -13.22,1.86 z" class="primitive"/>
</g>
<g transform="translate(119.12,40.27)" id="img-3444a34b-51" fill="#FF6765">
<path d="M-13.22,-1.93 L13.22,-1.93 13.22,1.93 -13.22,1.93 z" class="primitive"/>
</g>
<g transform="translate(39.92,36.58)" id="img-3444a34b-52" fill="#BEA9FF">
<path d="M-13.22,-1.95 L13.22,-1.95 13.22,1.95 -13.22,1.95 z" class="primitive"/>
</g>
<g transform="translate(66.32,36.4)" id="img-3444a34b-53" fill="#BEA9FF">
<path d="M-13.22,-1.98 L13.22,-1.98 13.22,1.98 -13.22,1.98 z" class="primitive"/>
</g>
<g transform="translate(92.72,36.56)" id="img-3444a34b-54" fill="#BEA9FF">
<path d="M-13.22,-1.99 L13.22,-1.99 13.22,1.99 -13.22,1.99 z" class="primitive"/>
</g>
<g transform="translate(119.12,36.32)" id="img-3444a34b-55" fill="#BEA9FF">
<path d="M-13.22,-2.01 L13.22,-2.01 13.22,2.01 -13.22,2.01 z" class="primitive"/>
</g>
<g transform="translate(39.92,32.69)" id="img-3444a34b-56" fill="#00B78D">
<path d="M-13.22,-1.94 L13.22,-1.94 13.22,1.94 -13.22,1.94 z" class="primitive"/>
</g>
<g transform="translate(66.32,32.43)" id="img-3444a34b-57" fill="#00B78D">
<path d="M-13.22,-1.99 L13.22,-1.99 13.22,1.99 -13.22,1.99 z" class="primitive"/>
</g>
<g transform="translate(92.72,32.58)" id="img-3444a34b-58" fill="#00B78D">
<path d="M-13.22,-1.99 L13.22,-1.99 13.22,1.99 -13.22,1.99 z" class="primitive"/>
</g>
<g transform="translate(119.12,32.34)" id="img-3444a34b-59" fill="#00B78D">
<path d="M-13.22,-1.96 L13.22,-1.96 13.22,1.96 -13.22,1.96 z" class="primitive"/>
</g>
<g transform="translate(39.92,28.8)" id="img-3444a34b-60" fill="#FF6DAE">
<path d="M-13.22,-1.95 L13.22,-1.95 13.22,1.95 -13.22,1.95 z" class="primitive"/>
</g>
<g transform="translate(66.32,28.5)" id="img-3444a34b-61" fill="#FF6DAE">
<path d="M-13.22,-1.94 L13.22,-1.94 13.22,1.94 -13.22,1.94 z" class="primitive"/>
</g>
<g transform="translate(92.72,28.63)" id="img-3444a34b-62" fill="#FF6DAE">
<path d="M-13.22,-1.96 L13.22,-1.96 13.22,1.96 -13.22,1.96 z" class="primitive"/>
</g>
<g transform="translate(119.12,28.45)" id="img-3444a34b-63" fill="#FF6DAE">
<path d="M-13.22,-1.93 L13.22,-1.93 13.22,1.93 -13.22,1.93 z" class="primitive"/>
</g>
<g transform="translate(39.92,24.89)" id="img-3444a34b-64" fill="#D4CA3A">
<path d="M-13.22,-1.97 L13.22,-1.97 13.22,1.97 -13.22,1.97 z" class="primitive"/>
</g>
<g transform="translate(66.32,24.6)" id="img-3444a34b-65" fill="#D4CA3A">
<path d="M-13.22,-1.96 L13.22,-1.96 13.22,1.96 -13.22,1.96 z" class="primitive"/>
</g>
<g transform="translate(92.72,24.76)" id="img-3444a34b-66" fill="#D4CA3A">
<path d="M-13.22,-1.9 L13.22,-1.9 13.22,1.9 -13.22,1.9 z" class="primitive"/>
</g>
<g transform="translate(119.12,24.57)" id="img-3444a34b-67" fill="#D4CA3A">
<path d="M-13.22,-1.95 L13.22,-1.95 13.22,1.95 -13.22,1.95 z" class="primitive"/>
</g>
<g transform="translate(39.92,20.98)" id="img-3444a34b-68" fill="#00BFFF">
<path d="M-13.22,-1.94 L13.22,-1.94 13.22,1.94 -13.22,1.94 z" class="primitive"/>
</g>
<g transform="translate(66.32,20.67)" id="img-3444a34b-69" fill="#00BFFF">
<path d="M-13.22,-1.97 L13.22,-1.97 13.22,1.97 -13.22,1.97 z" class="primitive"/>
</g>
<g transform="translate(92.72,20.9)" id="img-3444a34b-70" fill="#00BFFF">
<path d="M-13.22,-1.96 L13.22,-1.96 13.22,1.96 -13.22,1.96 z" class="primitive"/>
</g>
<g transform="translate(119.12,20.69)" id="img-3444a34b-71" fill="#00BFFF">
<path d="M-13.22,-1.94 L13.22,-1.94 13.22,1.94 -13.22,1.94 z" class="primitive"/>
</g>
</g>
</g>
</g>
</g>
</g>
<g class="guide ylabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-3444a34b-72">
<g transform="translate(25.72,50.1)" id="img-3444a34b-73">
<g class="primitive">
<text text-anchor="end" dy="0.35em">0</text>
</g>
</g>
<g transform="translate(25.72,31.35)" id="img-3444a34b-74">
<g class="primitive">
<text text-anchor="end" dy="0.35em">5.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,12.61)" id="img-3444a34b-75">
<g class="primitive">
<text text-anchor="end" dy="0.35em">1.0×10⁵</text>
</g>
</g>
</g>
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-3444a34b-76">
<g transform="translate(8.81,29.35)" id="img-3444a34b-77">
<g class="primitive">
<text text-anchor="middle" dy="0.35em" transform="rotate(-90,0, 2)">Count</text>
</g>
</g>
</g>
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-3444a34b-78">
<g transform="translate(79.52,5)" id="img-3444a34b-79">
<g class="primitive">
<text text-anchor="middle" dy="0.6em">Helper Data occurrences by quantized bits</text>
</g>
</g>
</g>
</g>
<defs>
<clipPath id="img-3444a34b-25">
<path d="M26.72,10.61 L132.32,10.61 132.32,52.1 26.72,52.1 " />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

View file

@ -0,0 +1,65 @@
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#import fletcher.shapes: pill
#import "@preview/touying:0.6.1": *
#let fletcher-diagram = touying-reducer.with(reduce: fletcher.diagram, cover: fletcher.hide)
#fletcher-diagram(
spacing: (-3mm, 8mm), // wide columns, narrow rows
node-stroke: 1pt, // outline node shapes
edge-stroke: 1pt, // make lines thicker
mark-scale: 60%, // make arrowheads smaller
node((0,0), [Start], name: <start>),
pause,
node((-4, 1), [u1], name: <u1>),
node((4, 1), [u2], name: <u2>),
node(enclose: (<u1>, <u2>), stroke: aqua, fill: aqua.lighten(90%), name: <iter1>),
edge(<start>, <u1.north>, "->"),
edge(<start>, <u2.north>, "->"),
node((-20mm, 39mm), [n1], shape: pill, name: <n1>),
edge(<n1.east>, <iter1.west>, "->"),
pause,
node((-6, 2), [u11], name: <u11>),
node((-2, 2), [u12], name: <u12>),
node((2, 2), [u21], name: <u21>),
node((6, 2), [u22], name: <u22>),
node(enclose: (<u11>, <u22>), stroke: teal, fill: teal.lighten(90%), name: <iter2>),
node((-20mm, 21.9mm), [n2], shape: pill, name: <n2>),
edge(<n2.east>, <iter2.west>, "->"),
edge(<u1>, <u11.north>, "->"),
edge(<u1>, <u12.north>, "->"),
edge(<u2>, <u21.north>, "->"),
edge(<u2>, <u22.north>, "->"),
pause,
node((-7, 3), [u111], name: <u111>),
node((-5, 3), [u112], name: <u112>),
node((-3, 3), [u121], name: <u121>),
node((-1, 3), [u122], name: <u122>),
node((1, 3), [u211], name: <u211>),
node((3, 3), [u212], name: <u212>),
node((5, 3), [u221], name: <u221>),
node((7, 3), [u222], name: <u222>),
node((-20mm, 4.6mm), [n3], shape: pill, name: <n3>),
edge(<n3.east>, <iter3.west>, "->"),
edge(<u11>, <u111.north>, "->"),
edge(<u11>, <u112.north>, "->"),
edge(<u12>, <u121.north>, "->"),
edge(<u12>, <u122.north>, "->"),
edge(<u21>, <u211.north>, "->"),
edge(<u21>, <u212.north>, "->"),
edge(<u22>, <u221.north>, "->"),
edge(<u22>, <u222.north>, "->"),
node(enclose: (<u111>, <u222>), stroke: eastern, fill: eastern.lighten(90%), name: <iter3>)
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 184 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 182 KiB

View file

@ -0,0 +1,274 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:gadfly="http://www.gadflyjl.org/ns"
version="1.2"
width="152.4mm" height="101.6mm" viewBox="0 0 152.4 101.6"
stroke="none"
fill="#000000"
stroke-width="0.3"
font-size="3.88"
>
<defs>
<marker id="arrow" markerWidth="15" markerHeight="7" refX="5" refY="3.5" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L15,3.5 L0,7 z" stroke="context-stroke" fill="context-stroke"/>
</marker>
</defs>
<g class="plotroot yscalable" id="img-dfec6c5e-1">
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-dfec6c5e-2">
<g transform="translate(79.52,89.99)">
<g class="primitive">
<text text-anchor="middle" dy="0.6em">Bool Vector</text>
</g>
</g>
</g>
<g class="guide xlabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-dfec6c5e-3">
<g transform="translate(33.32,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 0], [0, 0], [0, 0]]</text>
</g>
</g>
<g transform="translate(46.52,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 0], [0, 0], [1, 1]]</text>
</g>
</g>
<g transform="translate(59.72,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 0], [1, 1], [0, 0]]</text>
</g>
</g>
<g transform="translate(72.92,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 0], [1, 1], [1, 1]]</text>
</g>
</g>
<g transform="translate(86.12,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 1], [1, 0], [1, 0]]</text>
</g>
</g>
<g transform="translate(99.32,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 1], [1, 0], [0, 1]]</text>
</g>
</g>
<g transform="translate(112.52,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 1], [0, 1], [1, 0]]</text>
</g>
</g>
<g transform="translate(125.72,43.76)">
<g class="primitive">
<text text-anchor="end" dy="0.35em" transform="rotate(-90,0, 0)">Vector{Bool}[[0, 1], [0, 1], [0, 1]]</text>
</g>
</g>
</g>
<g class="guide colorkey" id="img-dfec6c5e-4">
<g fill="#4C404B" font-size="2.82" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" id="img-dfec6c5e-5">
<g transform="translate(136.13,23.06)" id="img-dfec6c5e-6" class="color_Symbol_1">
<g class="primitive">
<text dy="0.35em">Symbol 1</text>
</g>
</g>
<g transform="translate(136.13,26.68)" id="img-dfec6c5e-7" class="color_Symbol_2">
<g class="primitive">
<text dy="0.35em">Symbol 2</text>
</g>
</g>
<g transform="translate(136.13,30.31)" id="img-dfec6c5e-8" class="color_Symbol_3">
<g class="primitive">
<text dy="0.35em">Symbol 3</text>
</g>
</g>
<g transform="translate(136.13,33.94)" id="img-dfec6c5e-9" class="color_Symbol_4">
<g class="primitive">
<text dy="0.35em">Symbol 4</text>
</g>
</g>
</g>
<g fill-opacity="1" id="img-dfec6c5e-10">
<g transform="translate(134.23,23.06)" id="img-dfec6c5e-11" class="color_Symbol_1" stroke="#FFFFFF" fill="#00BFFF">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,26.68)" id="img-dfec6c5e-12" class="color_Symbol_2" stroke="#FFFFFF" fill="#D4CA3A">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,30.31)" id="img-dfec6c5e-13" class="color_Symbol_3" stroke="#FFFFFF" fill="#FF6DAE">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
<g transform="translate(134.23,33.94)" id="img-dfec6c5e-14" class="color_Symbol_4" stroke="#FFFFFF" fill="#00B78D">
<path d="M-0.91,-0.91 L0.91,-0.91 0.91,0.91 -0.91,0.91 z" class="primitive"/>
</g>
</g>
<g fill="#362A35" font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" stroke="#000000" stroke-opacity="0.000" id="img-dfec6c5e-15">
<g transform="translate(133.32,19.24)" id="img-dfec6c5e-16">
<g class="primitive">
<text dy="-0em">Source</text>
</g>
</g>
</g>
</g>
<g clip-path="url(#img-dfec6c5e-17)">
<g id="img-dfec6c5e-18">
<g pointer-events="visible" stroke-width="0.3" fill="#000000" fill-opacity="0.000" stroke="#000000" stroke-opacity="0.000" class="guide background" id="img-dfec6c5e-19">
<g transform="translate(79.52,26.68)" id="img-dfec6c5e-20">
<path d="M-52.8,-16.07 L52.8,-16.07 52.8,16.07 -52.8,16.07 z" class="primitive"/>
</g>
</g>
<g class="guide ygridlines xfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-dfec6c5e-21">
<g transform="translate(79.52,40.75)" id="img-dfec6c5e-22">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,35.13)" id="img-dfec6c5e-23">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,29.5)" id="img-dfec6c5e-24">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,23.87)" id="img-dfec6c5e-25">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,18.24)" id="img-dfec6c5e-26">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
<g transform="translate(79.52,12.61)" id="img-dfec6c5e-27">
<path fill="none" d="M-52.8,0 L52.8,0 " class="primitive"/>
</g>
</g>
<g class="guide xgridlines yfixed" stroke-dasharray="0.5,0.5" stroke-width="0.2" stroke="#D0D0E0" id="img-dfec6c5e-28">
<g transform="translate(39.92,26.68)" id="img-dfec6c5e-29">
<path fill="none" d="M0,-16.07 L0,16.07 " class="primitive"/>
</g>
<g transform="translate(53.12,26.68)" id="img-dfec6c5e-30">
<path fill="none" d="M0,-16.07 L0,16.07 " class="primitive"/>
</g>
<g transform="translate(66.32,26.68)" id="img-dfec6c5e-31">
<path fill="none" d="M0,-16.07 L0,16.07 " class="primitive"/>
</g>
<g transform="translate(79.52,26.68)" id="img-dfec6c5e-32">
<path fill="none" d="M0,-16.07 L0,16.07 " class="primitive"/>
</g>
<g transform="translate(92.72,26.68)" id="img-dfec6c5e-33">
<path fill="none" d="M0,-16.07 L0,16.07 " class="primitive"/>
</g>
<g transform="translate(105.92,26.68)" id="img-dfec6c5e-34">
<path fill="none" d="M0,-16.07 L0,16.07 " class="primitive"/>
</g>
<g transform="translate(119.12,26.68)" id="img-dfec6c5e-35">
<path fill="none" d="M0,-16.07 L0,16.07 " class="primitive"/>
</g>
</g>
<g class="plotpanel" id="img-dfec6c5e-36">
<metadata>
<boundingbox value="26.724999999999994mm 10.611666666666665mm 105.59499999999997mm 32.14333333333334mm"/>
<unitbox value="0.5 53553.23936989222 8.0 -57106.47873978444"/>
</metadata>
<g shape-rendering="crispEdges" stroke-width="0.3" id="img-dfec6c5e-37">
<g stroke="#000000" stroke-opacity="0.000" class="geometry" id="img-dfec6c5e-38">
<g transform="translate(33.32,34.81)" id="img-dfec6c5e-39" fill="#00B78D">
<path d="M-6.62,-5.94 L6.62,-5.94 6.62,5.94 -6.62,5.94 z" class="primitive"/>
</g>
<g transform="translate(59.72,34.96)" id="img-dfec6c5e-40" fill="#00B78D">
<path d="M-6.62,-5.79 L6.62,-5.79 6.62,5.79 -6.62,5.79 z" class="primitive"/>
</g>
<g transform="translate(46.52,34.93)" id="img-dfec6c5e-41" fill="#00B78D">
<path d="M-6.62,-5.83 L6.62,-5.83 6.62,5.83 -6.62,5.83 z" class="primitive"/>
</g>
<g transform="translate(72.92,34.88)" id="img-dfec6c5e-42" fill="#00B78D">
<path d="M-6.62,-5.88 L6.62,-5.88 6.62,5.88 -6.62,5.88 z" class="primitive"/>
</g>
<g transform="translate(86.12,34.93)" id="img-dfec6c5e-43" fill="#FF6DAE">
<path d="M-6.62,-5.82 L6.62,-5.82 6.62,5.82 -6.62,5.82 z" class="primitive"/>
</g>
<g transform="translate(99.32,34.86)" id="img-dfec6c5e-44" fill="#FF6DAE">
<path d="M-6.62,-5.9 L6.62,-5.9 6.62,5.9 -6.62,5.9 z" class="primitive"/>
</g>
<g transform="translate(112.52,34.91)" id="img-dfec6c5e-45" fill="#FF6DAE">
<path d="M-6.62,-5.84 L6.62,-5.84 6.62,5.84 -6.62,5.84 z" class="primitive"/>
</g>
<g transform="translate(125.72,34.87)" id="img-dfec6c5e-46" fill="#FF6DAE">
<path d="M-6.62,-5.88 L6.62,-5.88 6.62,5.88 -6.62,5.88 z" class="primitive"/>
</g>
<g transform="translate(86.12,23.26)" id="img-dfec6c5e-47" fill="#D4CA3A">
<path d="M-6.62,-5.85 L6.62,-5.85 6.62,5.85 -6.62,5.85 z" class="primitive"/>
</g>
<g transform="translate(99.32,23.11)" id="img-dfec6c5e-48" fill="#D4CA3A">
<path d="M-6.62,-5.85 L6.62,-5.85 6.62,5.85 -6.62,5.85 z" class="primitive"/>
</g>
<g transform="translate(112.52,23.16)" id="img-dfec6c5e-49" fill="#D4CA3A">
<path d="M-6.62,-5.91 L6.62,-5.91 6.62,5.91 -6.62,5.91 z" class="primitive"/>
</g>
<g transform="translate(125.72,23.15)" id="img-dfec6c5e-50" fill="#D4CA3A">
<path d="M-6.62,-5.85 L6.62,-5.85 6.62,5.85 -6.62,5.85 z" class="primitive"/>
</g>
<g transform="translate(33.32,22.95)" id="img-dfec6c5e-51" fill="#00BFFF">
<path d="M-6.62,-5.91 L6.62,-5.91 6.62,5.91 -6.62,5.91 z" class="primitive"/>
</g>
<g transform="translate(46.52,23.28)" id="img-dfec6c5e-52" fill="#00BFFF">
<path d="M-6.62,-5.82 L6.62,-5.82 6.62,5.82 -6.62,5.82 z" class="primitive"/>
</g>
<g transform="translate(59.72,23.35)" id="img-dfec6c5e-53" fill="#00BFFF">
<path d="M-6.62,-5.82 L6.62,-5.82 6.62,5.82 -6.62,5.82 z" class="primitive"/>
</g>
<g transform="translate(72.92,23.09)" id="img-dfec6c5e-54" fill="#00BFFF">
<path d="M-6.62,-5.91 L6.62,-5.91 6.62,5.91 -6.62,5.91 z" class="primitive"/>
</g>
</g>
</g>
</g>
</g>
</g>
<g class="guide ylabels" font-size="2.82" font-family="'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif" fill="#6C606B" id="img-dfec6c5e-55">
<g transform="translate(25.72,40.75)" id="img-dfec6c5e-56">
<g class="primitive">
<text text-anchor="end" dy="0.35em">0</text>
</g>
</g>
<g transform="translate(25.72,35.13)" id="img-dfec6c5e-57">
<g class="primitive">
<text text-anchor="end" dy="0.35em">1.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,29.5)" id="img-dfec6c5e-58">
<g class="primitive">
<text text-anchor="end" dy="0.35em">2.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,23.87)" id="img-dfec6c5e-59">
<g class="primitive">
<text text-anchor="end" dy="0.35em">3.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,18.24)" id="img-dfec6c5e-60">
<g class="primitive">
<text text-anchor="end" dy="0.35em">4.0×10⁴</text>
</g>
</g>
<g transform="translate(25.72,12.61)" id="img-dfec6c5e-61">
<g class="primitive">
<text text-anchor="end" dy="0.35em">5.0×10⁴</text>
</g>
</g>
</g>
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-dfec6c5e-62">
<g transform="translate(8.81,24.68)" id="img-dfec6c5e-63">
<g class="primitive">
<text text-anchor="middle" dy="0.35em" transform="rotate(-90,0, 2)">Count</text>
</g>
</g>
</g>
<g font-size="3.88" font-family="'PT Sans','Helvetica Neue','Helvetica',sans-serif" fill="#564A55" stroke="#000000" stroke-opacity="0.000" id="img-dfec6c5e-64">
<g transform="translate(79.52,5)" id="img-dfec6c5e-65">
<g class="primitive">
<text text-anchor="middle" dy="0.6em">Helper Data occurrences by quantized bits</text>
</g>
</g>
</g>
</g>
<defs>
<clipPath id="img-dfec6c5e-17">
<path d="M26.72,10.61 L132.32,10.61 132.32,42.76 26.72,42.76 " />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

162
main.typ
View file

@ -14,12 +14,164 @@
), ),
) )
= Einführung = Ausgangslage
== Ausgangslage == 1-Bit Quantisierung
== Planung #figure(
include("./graphics/background/sign-based-overlay.typ"),
// caption: []
)
= Ergebnisse - Stufe des Quantisiererfunktion nahe des Erwartungswertes der Wahrscheinlichkeitsverteilung
== Hier dann == Optimierung der 1-Bit Quantisierung
- Eingangswerte als Gewichtete Summen
#v(1em)
$ f(bold(x), bold(h)) = h_1 x_1 + h_2 x_2 + h_3 x_3 $
- $h_i$ als Helperdaten
#v(1em)
- Betragsmäßige Maximierung von $f(bold(x), bold(h))$ für möglichst wenige Werte nahe der $0$
#v(1em)
$ max_(h_1, h_2, h_3) |f(bold(x), bold(h))| $
== Optimierung der 1-Bit Quantisierung (2)
#align(horizon)[
#figure(
include("./graphics/background/z_distribution.typ"),
caption: [Optimierte Sign-Based Quantisierung]
)]
== Verallgemeinerung auf n-Bit
- Definition der Quantisierung höherer Ordnung als mehrstufige Funktion
#v(1em)
#figure(
include("./graphics/background/two-bit-enroll.typ")
)
- Problem: Optimale Position der Quantisierergrenzen $g_1$ und $g_2$
== Verallgemeinerung auf n-Bit --- Optimierungsbedingung
- Zwei Möglichkeiten zur optimalen Positionierung der Linearkombinationen:
1. Beste Approximation zur Mitte einer Quantisiererstufe
2. Maximierung des Abstandes zur nächstgelegenen Grenze der Linearkombination
== Verallgemeinerung auf n-Bit --- Algorithmus
1. Naives Raten der Grenzen $g_(1,2)$ und erste Optimierung
2. Über eCDF der resultierenden Verteilung neue Grenzen definieren, sodass jedes Symbol gleich wahrscheinlich ist
== Verallgemeinerung auf n-Bit --- Probleme
- Approximation zur Mitte konvergiert, allerdings keine Verbesserung der Fehlerrate
- Maximierung des Abstandes konvergiert nicht
#figure(
grid(
columns: (1fr, 1fr),
rows: (2),
[//#figure(
#image("./graphics/background/bach/instability/frame_1.png", width: 80%)
#v(-0.5em)
//)
Iteration 1],
[//#figure(
#image("./graphics/background/bach/instability/frame_18.png", width: 80%)
#v(-0.5em)
//)
Iteration 18],
),
)
= Implementierung
== Mögliche Lösungen
- Rekursiver Ansatz
- Vorgabe des Codeworts
- Brute-Force Ansatz
== Rekursiver Ansatz
1. Teile Verteilung am Erwartungswert auf
2. Addiere weitere Weights ($0.25, 0.125, ...$)
3. Maximiere Abstand zur nächstgelegenen Grenze
4. Teile neue Verteilungen wieder am Erwartungswert auf
== Rekursiver Ansatz
#align(horizon)[
#include("./graphics/execution/recursive.typ")
]
== Rekursiver Ansatz --- Resultierende Verteilung
#align(horizon)[
#figure(
image("./graphics/recursive_distribution.svg", width: 60%)
)]
== Rekursiver Ansatz --- Helperdaten
#align(horizon)[
#figure(
image("./graphics/recursive_helperdata_dist.svg", width: 60%)
)
]
== Vorgabe des Codeworts
- Generierung eines zufälligen Schlüssels
- Nutze Quantile der Normalverteilung als vorgegebene Grenzen
- Wähle jeweilige Linearkombination, die am besten das Quantil des Vorgegebenen Bits annähert
== Vorgabe des Codeworts --- Verteilung
#figure(
image("./graphics/given_codeword_dist.svg")
)
== Brute-Force Ansatz
- Großer Datensatz mit Grenzen
- Führe Optimierung und Quantisierung mit jedem Satz Grenzen durch
- Pearson's Chi-Square Test der Quantisierten Symbole auf Gleichverteilung
- Maximales Resultat des Chi-Square Tests gibt optimale Grenzen zurück
== Brute-Force Ansatz --- Verteilung
#figure(
image("./graphics/bruteforce_dist.svg")
)
== Brute-Force Ansatz --- Helperdaten
#figure(
image("./graphics/bruteforce_helperdata1.svg")
)
= Fazit
- Rekursiver Ansatz generiert gleichverteilte Ausgansverteilungen
- Helperdaten geben Informationen über das Codewort bekannt
- Vorgabe des Codeworts als Bedingung nicht stark genug
- Brute-Force Ansatz findet Gleichverteilungen
- Helperdaten geben keine Informationen bekannt
- Verbesserung der Bitfehlerrate um einen Faktor $10$
- Vorberechnete Grenzen können auf beliebige Normalverteilungen angewendet werden