Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
ds2-notes
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
datovky
ds2-notes
Commits
b662898c
Commit
b662898c
authored
3 years ago
by
Filip Stedronsky
Browse files
Options
Downloads
Patches
Plain Diff
Succinct: mixers intro
parent
bd3aaf80
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
fs-succinct/Makefile
+1
-1
1 addition, 1 deletion
fs-succinct/Makefile
fs-succinct/mixer.asy
+15
-0
15 additions, 0 deletions
fs-succinct/mixer.asy
fs-succinct/succinct.tex
+30
-1
30 additions, 1 deletion
fs-succinct/succinct.tex
with
46 additions
and
2 deletions
fs-succinct/Makefile
+
1
−
1
View file @
b662898c
TOP
=
..
PICS
=
sole sole_boxes sole_hilevel
PICS
=
sole sole_boxes sole_hilevel
mixer
include
../Makerules
...
...
This diff is collapsed.
Click to expand it.
fs-succinct/mixer.asy
0 → 100644
+
15
−
0
View file @
b662898c
import succinct_common;
real r = 1.5;
real dist=2;
mixer(0,0,r);
draw((-dist,0)--(-r,0), e_arrow);
draw((r,0)--(dist,0), e_arrow);
draw((0,-r)--(0,-dist), e_arrow);
draw((0,dist)--(0,r), e_arrow);
label((0, dist), "\vbox{\hbox{$x\in[X]$}\hbox{\eightrm (input)}}", N);
label((-dist, 0), "\vbox{\hbox{$y\in[Y]$}\hbox{\eightrm (carry in)}}", W);
label((dist, 0), "\vbox{\hbox{$s\in[S]$}\hbox{\eightrm (carry out)}}", E);
label((0, -dist), "\vbox{\hbox{$m\in[2^M]$}\hbox{\eightrm (output)}}", S);
label((0, 0), "$t\in [T]$");
This diff is collapsed.
Click to expand it.
fs-succinct/succinct.tex
+
30
−
1
View file @
b662898c
...
...
@@ -141,7 +141,7 @@ the alphabet [88] (by the simple transformation of $8x + y$). We can then split
that character again into two in a different way. For example into two characters
from alphabets [9] and [10]. This can be accomplished by simple division with
remainder: if the original character is
$
z
\in
[
88
]
$
, we transform in into
$
\lfloor
z
/
10
\rfloor
$
and
$
(
z
\
;
{
\rm
mod
}
\;
10
)
$
. For example, if we start
$
\lfloor
z
/
10
\rfloor
$
and
$
(
z
\
bmod
10
)
$
. For example, if we start
with the characters 6 and 5, they first get combined to form
$
6
\cdot
8
+
5
=
53
$
and then split into 5 and 3.
...
...
@@ -233,4 +233,33 @@ into the output. The final carry is then used to output some extra blocks at the
\subsection
{
Generalizing the mixer concept
}
\figure
[mixer]
{
mixer.pdf
}{}{
General structure of a mixer
}
At a high level, a mixer can be thought of as a mapping
$
f:
[
X
]
\times
[
Y
]
\rightarrow
[
2
^
M
]
\times
[
S
]
$
with the property that when
$
(
m,s
)
=
f
(
x,y
)
$
,
$
s
$
depends only on
$
x
$
.
Internally, the a mixer is
always implemented as a composition of two mappings,
$
f
_
1
$
that transforms
$
x
\rightarrow
(
t,s
)
$
and
$
f
2
$
that transforms
$
(
y,t
)
\rightarrow
m
$
. See fig.
\figref
{
mixer
}
. Both
$
f
_
1
$
and
$
f
_
2
$
must be injective
so that the encoding is reversible.
The mappings
$
f
_
1
$
and
$
f
_
2
$
themselves are trivial alphabet translations similar to what we
used in the SOLE encoding. You can for example use
$
f
_
1
(
x
)
=
(
\lceil
x
/
S
\rceil
, x
\bmod
S
)
$
and
$
f
_
2
(
y,t
)
=
t
\cdot
Y
+
y
$
.
Thus implementing the mixer is simple as long as the parameters allow its existence. A mixer
with parameters
$
X
$
,
$
Y
$
,
$
S
$
,
$
M
$
can exist if and only if there exists
$
T
$
such that
$
S
\cdot
T
\le
X
$
and
$
2
^
M
\le
T
\cdot
Y
$
(once again, the alphabet translations need their
range to be as large as their domain in order to work).
\subsection
{
On the existence of certain kinds of mixers
}
Now we would like to show that mixers with certain parameters do exist.
\lemma
{
For
$
X,Y
\le
2
^
w
$
there exists a mixer
$
f:
[
X
]
\times
[
Y
]
\rightarrow
[
2
^
M
]
\times
[
S
]
$
such that:
\tightlist
{
o
}
\:
$
S
=
\O
(
\sqrt
{
X
}
)
$
\endlist
}
\endchapter
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment