article: all tensor to one order tensor

This commit is contained in:
2026-01-15 17:40:03 +01:00
commit 3477e80d51
+453
View File
@@ -0,0 +1,453 @@
\documentclass[a4paper,11pt]{report}
%\usepackage[utf8]{inputenc}
\usepackage[cal=boondox,scr=boondoxo]{mathalfa} %%% endrikan'ny mathcal sy mathscr
\usepackage[a4paper,bindingoffset=0cm,%
left=2cm,right=2cm,top=2cm,bottom=2cm,%
footskip=0.8cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\frenchbsetup{StandardLists=true} % à inclure si on utilise \usepackage[french]{babel}
\usepackage{cite} % pour les citations multiples
\usepackage{enumitem}
%\bibliographystyle{fr-plain}
\usepackage{amsmath, amsthm} % tr`es bon mode mathÂ?ematailletique
\usepackage{amsfonts,amssymb}% permet la definition des ensembles
\usepackage{mathtools}
\usepackage{centernot}
%\usepackage{tikz3d-fr}
\usepackage{tikz,tkz-tab}
\usetikzlibrary{3d}
%\usepackage{pgfplots}
%\usetikzlibrary{decorations.pathreplacing}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{definition}{Definition}[section]
\begin{document}
\section{Goal: Write any tensor as vector !!}
\begin{definition}
A dimension of a tensor $T$ is a vector $d\in \left(\mathbb{N}^*\right)^k$ $(k<\infty)$. We have $$T=(a)_d=(a)_{d_1,\ldots,d_k} =(a_{i_1,\ldots,i_k}^{\{k\}})_{0\le i_1<d_1, \ldots , 0\le i_k< d_k} $$
$$ a_{i_1,\ldots,i_k}^{\{k\}}\in \mathbb{K} \ \ / \ \ 0\le i_j<d_j $$
\end{definition}
$\mathbb{K}$ is a field( for e.g $\mathbb{R}$ )\\
$k>0$ is the order.\\
The size of the Tensor is $d_1 \times \cdots \times d_k=\prod_{i=1}^kd_i$
% Here $\mathbb{K} = \mathbb{R}$ to simplify but it works for all filds.
We can write $$T\in \mathbb{K}^{d_1 \times d_2 \times \cdots \times d_k}$$
\section{Bijection}
For a given $d_1,\ldots,d_k\in \mathbb{N}^*$, there exists a bijective application between a set of tensor order 1 of size $n=d_1\cdot d_2 \cdots d_k$ $\mathbb{K}^{d_1\times d_2 \times \cdots \times d_k}$ and the set of tensor of order $k$ of the size $n= d_1\cdot d_2 \cdots d_k$ $\mathbb{K}^{d_1\times d_2 \times \cdots \times d_k}$.
Little endian
$$
\begin{array}{ccc}
\mathbb{K}^{d_1\times d_2 \times \cdots \times d_k} & \longrightarrow & \mathbb{K}^{d_1\cdot d_2\cdots d_k} \\
\left(a_{(i_1,\ldots,i_k)_k}\right) & \longmapsto & \left(a_{\left(i_1+i_2\cdot d_1+\ldots+i_k \prod_{j=1}^{k-1}d_j\right)_1}\right)
\end{array}
$$
Big endian
$$
\begin{array}{ccc}
\mathbb{K}^{d_1\times d_2 \times \cdots \times d_k} & \longrightarrow & \mathbb{K}^{d_1\cdot d_2\cdots d_k} \\
\left(a_{(i_1,\ldots,i_k)_k}\right) & \longmapsto & \left(a_{\left(i_1 \prod_{j=2}^kd_j+i_2\prod_{j=3}^k d_j+\ldots +i_{k-1} d_k +i_k \right)_1}\right)
\end{array}
$$
For $a,b\in \mathbb{N}$, we note $ [\![ a,b ]\!] = [a.. b]=[a,b]\cap \mathbb{N}$
and $ [\![ a,b [\![ = [\![ a,b ) = [a.. b) = [a.. b[=[a,b[\cap \mathbb{N}$
If $a=0$ we note $[b]=[\![0,b]\!]$ and $[b)=[\![0,b[\![$ so here we defined a bijection of indexe, i.e,
\begin{align*}
f:[d_1)\times[d_2)\times\cdots\times [d_k) & \longrightarrow [d_1\cdot d_2\cdots d_k)\\
(i_1,i_2,\ldots,i_k)_k & \longrightarrow f(i_1,i_2,\ldots,i_k)=(i)_1
\end{align*}
If little endian
\begin{align*}
i & =i_1 +i_2d_1+\cdots+i_k\prod_{j=1}^{k-1} d_j \\
&=\sum_{j=1}^ki_j\prod_{l=1}^{j-1}d_l
\end{align*}
If big endian
\begin{align*}
i & =i_1 \prod_{j=2}^kd_j+i_2\prod_{j=3}^k d_j+\ldots +i_{k-1} d_k +i_k \\
&=\sum_{j=1}^ki_j\prod_{l=i+1}^kd_l
\end{align*}
$ $
\section{Inverse indexes}
The inverse of Little endian :
For any $i\in \mathbb{N} , i<n=\prod_{j=1}^kd_j \exists! (i_1, \ldots, i_k) / \forall 1 \le j \le k, 0\le i_j<d_j$ and $$ i=\sum_{j=1}^{k} i_j\left( \prod_{l=1}^{j-1} d_l \right) $$
The inverse of big endian :
For any $i\in \mathbb{N} , i<n=\prod_{j=1}^kd_j \exists! (i_1, \ldots, i_k) / \forall 1 \le j \le k, 0\le i_j<d_j$ and $$ i=\sum_{s=j}^k i_s\left( \prod_{l=s+1}^k d_l \right) $$
Proof of the inverse of big endian, the Little endian is almost the same:
By reccurence:
by Euclide division $\exists ! (r_1,i_1)\in \mathbb{N}^2 / r_1 < \prod_{l=2}^k d_l $ and $i=i_1*\prod_{l=2}^k d_l + r_1$.
And so on, there exists $(r_2, i_2)\in\mathbb{N}^2$ such that $r_2<\prod_{l=3}^k d_l$ and $r_1 = i_2*\prod_{l=3}^k d_l + r_2$.
Suppose, for all $2<j< k$ there exists $(r_j,i_j)\in\mathbb{N}^2$ such that $r_j<\prod_{l=j+1}^kd_l$ and $r_{j-1}=i_j\prod_{l=j+1}^k d_l + r_j $
By Euclide disvision on $r_j$ and $\prod_{l=j+2}^kd_l$ there exists $(r_{j+1}, i_{j+1})\in\mathbb{N}^2$ such that $r_j<\prod_{l=j+2}^k d_l$ and $r_j=i_{j+1}\prod_{l=j+2}^k d_l + r_{j+1}$
One of the advantages using order 1 tensor than larger order only one loop to browse all elements of the tensor.
\section{Operations on tensors}
We prove below that all operations like tensor contraction and tensor multiplication work with these bijections.
Let $T_{\alpha}^{\{k\}}\in\mathbb{R}^{d_{1}\times\cdots\times d_{k}}$ and $T_{\beta}^{\{q\}}\in\mathbb{R}^{b_{1}\times\cdots\times b_{q}}$ and $T_{\alpha}^{\{1\}}\in\mathbb{R}^{d_{1}\cdots d_{k}}$ and $T_{\beta}^{\{1\}}\in\mathbb{R}^{b_{1}\cdots b_{q}}$ such that
$T_{\alpha}^{\{k\}}=\left(\alpha_{\left(i_{1},\ldots,i_{k}\right)_k}\right)_{0\le i_{j}<d_{j} / 1\le j\le k} $
and $T_{\beta}^{\{q\}}=\left(\beta_{\left(i_{1},\ldots,i_{q}\right)_q}\right)_{0\le i_{j}<b_{j} / 1\le j\le q} $
and $T_{\alpha}^{\{1\}}=\left(\alpha_{\left(i_1\right)_1}\right)_{0\le i_1 < \prod_{j=1}^k d_{j}}$
and $T_{\beta}^{\{1\}}=\left(\beta_{\left(i_1\right)_1}\right)_{0\le i_1 < \prod_{j=1}^{q} b_{j}}$
Here we use little endian so
$\alpha_{\left(\sum_{j=1}^k i_j\left(\prod_{l=1}^{j-1}d_{l}\right)\right)_1}=\alpha_{\left(i_1,\ldots,i_k\right)_k}$ $\,\, /\,\, i_j\in[d_{j}) \,\,/\,\, 1\le j\le k$
and
$\beta_{\left(\sum_{j=1}^{q} i_j\left(\prod_{l=1}^{j-1}b_{l}\right)\right)_1}=\beta_{\left(i_1,\ldots,i_{q}\right)_q}$ $\,\, /\,\, i_j\in [b_{j}) \,\,/\,\, 1\le j\le q$
\subsection{Tensor multiplication}
tensor multiplication of $T_{\alpha}^{\{k\}} \times T_{\beta}^{\{q\}} = T_{\gamma}^{\{k+q\}}=\left(\gamma_{\left(i_{1},\ldots,i_{k+q}\right)_{k+q}}\right)\in \mathbb{R}^{d_{1}\times\cdots\times d_{k}\times b_{1}\times\cdots\times b_{q}}$ such that
$$\gamma_{\left(i_{1},\ldots, i_{k},i_{k+1},\ldots,i_{k+q}\right)_{k+q}}=\alpha_{\left(i_{1},\ldots,i_{k}\right)_k} \cdot \beta_{\left(i_{k+1},\ldots,i_{k+q}\right)_q} $$
So the correspondant one order tensor of $T_c^{k+q}$ is $T_c^1=({\gamma}_{i}^{k+q})\in\mathbb{R}^{d_{(1,a)}\cdots d_{(k,a)}\cdot d_{(1,b)}\cdots d_{(q,b)}}$ such that
\begin{align*}
{\gamma}_{i_{(1,c)},\ldots, i_{(k,c)},i_{(k+1,c)}}^{k+q}&={\gamma}_{\sum_{j=1}^{k+q} i_{(j,c)}\prod_{l=1}^{j-1}d_{i_{(l,c)}} }^{1}\\
&={\gamma}_{\sum_{j=1}^{k} i_{(j,c)}\prod_{l=1}^{j-1}d_{i_{(l,c)}} + \sum_{j=k+1}^{k+q} i_{(j,c)}\prod_{l=1}^{j-1}d_{i_{(l,c)}} }^{1}\\
&=a_{\sum_{j=1}^{k} i_{(j,c)}\prod_{l=1}^{j-1}d_{i_{(l,c)}}}^1 \cdot b_{ \sum_{j=k+1}^{k+q} i_{(j,c)}\prod_{l=1}^{j-1}d_{i_{(l,c)}} }^{1}\\
&=a_{i_{(1,c)},\ldots,i_{(k,c)}}^k \cdot b_{ i_{(k+1,c)},\ldots,{(k+q,c)} }^{q}\\
\end{align*}
\subsection{tensor contraction}
Let $T_a^k\in\mathbb{R}^{d_{(1,a)}\times\cdots\times d_{(k,a)}}$ and $T_b^{q}\in\mathbb{R}^{d_{(1,b)}\times\cdots\times d_{(q,b)}}$ and $T_a^1\in\mathbb{R}^{d_{(1,a)}\cdots d_{(k,a)}}$ and $T_b^1\in\mathbb{R}^{d_{(1,b)}\cdots d_{(q,b)}}$ such that there exists $0<k_0 \le \min(k,q)$.
tensor $k_0$ contraction of $T_a^{k}$ and $T_b^{q}$ is $T_c^{k+q-2\cdot k_0}\in\mathbb{R}^{d_{(1,a)}\times\cdots\times d_{(k-k_0-1,c)} \times d_{(k_0+1+q,c)}\times\cdots\times d_{(k+q,c)} }$ such that:
\begin{align*}
d_{(i,c)}&=d_{(i,a)} &\forall 1\le i\le k- k_0\\
d_{(i,c)}&=d_{(i-k,b)} &\forall k_0+k< i \le k+q\\
d_{(i,a)}&=d_{(i-k+k_0,b)} &\forall i\in [k-k_0+1, k]\cap \mathbb{N}\\
\end{align*}
and
\begin{align*}
{\gamma}_{i_{(1,c)},\ldots,i_{k+q-2\cdot k_0,c}}^{k+q-2\cdot k_0}&={\gamma}_{i_{(1,a)},\ldots,i_{(k-k_0-1,a)},i_{(k_0+1,b)},\ldots,i_{(q,b)}}^{k+q-2\cdot k_0} \\
&=\sum_{l_{1}=0}^{d_{(1,b)}-1}\sum_{l_{2}=0}^{d_{(1,b)}-1}\cdots \sum_{l_{k_0}=0}^{d_{k_0}-1} a_{i_{(1,a)},\ldots,i_{(k-k_0-1,a)},l_{1},l_{2},\ldots,l_{k_0}}^k b_{l_{1},l_{2},\ldots,l_{k_0},i_{(k_0+1,b)},i_{(k_0,b)},\ldots,i_{(q,b)}}^{q} \\
\end{align*}
For example in little endian transformation:
\begin{align*}
a_{i_{(1,a)},\ldots,i_{(k-k_0,a)},l_{1},l_{2},\ldots,l_{k_0}}^k &= a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\sum_{j=k-k_0+1}^{k}l_{(j-k+k_0)}\prod_{s=1}^{j-1}d_{(s,a)}}^1\\
b_{l_{1},l_{2},\ldots,l_{k_0},i_{(k_0+1,b)},i_{(k_0,b)},\ldots,i_{(q,b)}}^{q} &= b_{\sum_{j=1}^{k_0}l_j\prod_{s=1}^{j-1}d_{(s,b)}+\sum_{j=k_0+1}^{k}b_{(j,b)}\prod_{s=1}^{j-1}d_{(s,b)}}^1\\
\end{align*}
We have to sum these terms $
\forall l_{1}\in [0,d_{(1,b)}[\cap \mathbb{N}, \forall l_{2}\in [0,d_{(1,b)}[\cap\mathbb{N}\cdots \forall l_{k_0}\in[0,d_{(k_0,b)}[\cap\mathbb{N}
$
So
\begin{align*}
0 \le l_{j} &\le d_{(j,b)}-1 \, \, , \forall 1 \le j \le k_0\\
0 \prod_{s=1}^{j-1}d_{(s,b)} \le l_{j} \prod_{s=1}^{j-1}d_{(s,b)} & \le (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)}\, \, , \forall 1 \le j \le k_0\\
0 \le l_{j} \prod_{s=1}^{j-1}d_{(s,b)} & \le (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)}\, \, , \forall 1 \le j \le k_0\\
\sum_{j=1}^{k_0} 0 \le \sum_{j=1}^{k_0} l_{j} \prod_{s=1}^{j-1}d_{(s,b)} & \le \sum_{j=1}^{k_0} (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)}\\
0 \le \sum_{j=1}^{k_0} l_{j} \prod_{s=1}^{j-1}d_{(s,b)} & \le \sum_{j=1}^{k_0} (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)} = M_{k_0}\\
% \sum_{l_j=0}^{d_{(j,b)}-1} 0 \le \sum_{l_j=0}^{d_{(j,b)}-1} l_{j} \prod_{s=1}^{j-1}d_{(s,b)} &< \sum_{l_j=0}^{d_{(j,b)}-1} \prod_{s=1}^{j}d_{(s,b)} \\
% 0 \le \sum_{l_j=0}^{d_{(j,b)}-1} l_{j} \prod_{s=1}^{j-1}d_{(s,b)} &< d_{(j,b)} \prod_{s=1}^{j-1}d_{(s,b)}=\prod_{s=1}^{j}d_{(s,b)} \\
% 0 \le \sum_{l_j=0}^{d_{(j,b)}-1} l_{j} \prod_{s=1}^{j-1}d_{(s,b)} &< \prod_{s=1}^{j}d_{(s,b)} \\
\end{align*}
if $k_0=1$
$M_1+1 = (d_{(1,b)}-1) +1 = d_{(1,b)} $
Suppose $M_{k_0-1}+1=\prod_{j=1}^{k_0-1}d_{(j,b)}$
%$M_{k_0}+1 = \sum_{j=1}^{k_0} (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)} +1$
\begin{align*}
M_{k_0}+1 &= \sum_{j=1}^{k_0} (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)} +1 \\
&= \left(\sum_{j=1}^{k_0-1} (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)} \right) + (d_{(k_0,b)}-1) \prod_{s=1}^{k_0-1}d_{(s,b)} +1 \\
&= \left(\sum_{j=1}^{k_0-1} (d_{(j,b)}-1) \prod_{s=1}^{j-1}d_{(s,b)} \right) +1 + (d_{(k_0,b)}-1) \prod_{s=1}^{k_0-1}d_{(s,b)} \\
&=M_{k_0-1} + 1 + (d_{(k_0,b)}-1) \prod_{s=1}^{k_0-1}d_{(s,b)} \\
&=\prod_{j=1}^{k_0-1}d_{(j,b)} + (d_{(k_0,b)}-1) \prod_{s=1}^{k_0-1}d_{(s,b)}\\
&= \prod_{s=1}^{k_0-1}d_{(s,b)} \left( (d_{(k_0,b)}-1) + 1\right) = d_{(k_0,b)} \prod_{s=1}^{k_0-1}d_{(s,b)}\\
&= \prod_{s=1}^{k_0}d_{(s,b)} \\
\end{align*}
So when $l_j$ browses $[0,d_{(j,b)}[\cap \mathbb{N}$ for all $1\le j\le k_0$ the indexe $\sum_{j=1}^{k_0} l_{j} \prod_{s=1}^{j-1}d_{(s,b)}$ browses $$\left[0,\prod_{j=1}^{k_0}d_{(j,b)}\right[\cap\mathbb{N}$$
\begin{align*}
&a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\sum_{j=k-k_0+1}^{k}l_{(j-k+k_0)}\prod_{s=1}^{j-1}d_{(s,a)}}^1 \\
&=a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\sum_{j=k-k_0+1}^{k}l_{(j-k+k_0)}\prod_{s=1}^{k-k_0}d_{(s,a)}\prod_{s=k-k_0+1}^{j-1}d_{(s,a)}}^1\\
& ( t=j-k+k_0 \Rightarrow j=t+k-k_0 )\\
&(j=k-k_0+1\Rightarrow t=1; j=k\Rightarrow t=k_0)\\
&= a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\sum_{t=1}^{k_0}l_{t}\prod_{s=k-k_0+1}^{k-k_0+t-1}d_{(s,a)} \left(\prod_{s=1}^{k-k_0}d_{(s,a)}\right)}^1 \\
\end{align*}
But $d_{(s,a)} = d_{(s-k+k_0,b)} \, \, \forall s\in[k-k_0+1,k]\cap\mathbb{N}$
\begin{align*}
&a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\sum_{t=1}^{k_0}l_{t}\prod_{s=k-k_0+1}^{k-k_0+t-1}d_{(s,a)} \left(\prod_{s=1}^{k-k_0}d_{(s,a)}\right)}^1\\
&= a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\sum_{t=1}^{k_0}l_{t}\prod_{s=k-k_0+1}^{k-k_0+t-1}d_{(s-k+k_0,b)} \left(\prod_{s=1}^{k-k_0}d_{(s,a)}\right)}^1 \\
& (u=s-k+k_0 \Leftrightarrow s=u+k-k_0)\\
& (s=k-k_0+1 \Rightarrow u=1)\\
& (s=k-k_0+t-1 \Rightarrow u=t-1)\\
&= a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\sum_{t=1}^{k_0}l_{t}\prod_{u=1}^{t-1}d_{(u,b)} \left(\prod_{s=1}^{k-k_0}d_{(s,a)}\right)}^1 \\
&= a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{s=1}^{j-1}d_{(s,a)}+\left(\prod_{s=1}^{k-k_0}d_{(s,a)}\right)\sum_{t=1}^{k_0}l_{t}\prod_{u=1}^{t-1}d_{(u,b)} }^1 \\
\end{align*}
as below
$ \sum_{t=1}^{k_0}l_{t}\prod_{u=1}^{t-1}d_{(u,b)}$ browse $ \left[0,\prod_{j=1}^{k_0}d_{(j,b)}\right[\cap\mathbb{N}$ when $l_j$ browses $[0,d_{(j,b)}[\cap\mathbb{N}$ for all $1\le j\le k_0$
As $l_j\in[0,d_{(j,b)}[\cap\mathbb{N} \forall 1\le j\le k_0$ and
$$card([0,d_{(j,b)}[\cap\mathbb{N})=d_{(j,b)}$$
also
$$card\left(\prod_{j=1}^{k_0}[0,d_{(j,b)}[\cap\mathbb{N}\right)=\prod_{j=1}^{k_0}d_{(j,b)}$$
then
\begin{align*}
&\sum_{l_{1}=0}^{d_{(1,b)}-1}\sum_{l_{2}=0}^{d_{(1,b)}-1}\cdots \sum_{l_{k_0}=0}^{d_{k_0}-1} a_{i_{(1,a)},\ldots,i_{(k-k_0,a)},l_{1},l_{2},\ldots,l_{k_0}}^k b_{l_{1},l_{2},\ldots,l_{k_0},i_{(k_0+1,b)},i_{(k_0,b)},\ldots,i_{(q,b)}}^{q}\\
&= \sum_{l=0}^{\prod_{t=1}^{k_0}d_{(t,b)}} a_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{u=1}^{j-1}d_{(u,a)}+l\cdot\prod_{s=1}^{k-k_0}d_{(s,a)}}^1 b_{l+\sum_{j=k_0+1}^k i_{(j,b)}\prod_{u=1}^{j-1}d_{(u,b)}}^1 \\
&= {\gamma}_{\sum_{j=1}^{k-k_0}i_{(j,a)}\prod_{u=1}^{j-1}d_{(u,a)}+\sum_{j=k_0+1}^k i_{(j,b)}\prod_{u=1}^{j-1}d_{(u,b)}}^1 \\
&={\gamma}_{i_{(1,a)},i_{(2,a)},\ldots,i_{(k-k_0,a)},i_{(k_0+1,b)},i_{(k_0+2,b)},\ldots,i_{(q,b)}}^{k+q-2\cdot k_0}
\end{align*}
\section{Advantages using tensor order one}
The most advantage is computation, only one loop to browse all tensor elements! If we can compute in parallele, as we know the size and it is on a line, each threads or compute units available can have the same number of elements to compute!
\section{Examples}
\hrule
\vspace{1cm}
Big endian $k=2$
\begin{align*}
\left( \left( a_{(0,0)}^{[0]},a_{(0,1)}^{[d_2]},\ldots, a_{(0,d_1-1)}^{[(d_1-1)d_2]} \right)\right. \\
\left( a_{(1,0)}^{[1]},a_{(1,1)}^{[d_2+1]},\ldots, a_{(1,d_1-1)}^{[(d_1-1)d_2+1]} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left( a_{(d_2-1,0)}^{[d_2-1]},a_{(d_2-1,1)}^{[2d_2-1]},\ldots, a_{(d_2-1,d_1-1)}^{[(d_2-1)d_1 +d_1-1]} \right) \\
\end{align*}
\hrule
\vspace{1cm}
little endian $k=2$
\begin{align*}
\left( \left( a_{(0,0)}^{[0]},a_{(0,1)}^{[1]},\ldots, a_{(0,d_1-1)}^{[d_1-1]} \right)\right. \\
\left( a_{(1,0)}^{[d_1]},a_{(1,1)}^{[d_1+1]},\ldots, a_{(1,d_1-1)}^{[2d_1-1]} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left( a_{(d_2-1,0)}^{[(d_2-1)d_1]},a_{(d_2-1,1)}^{[(d_2-1)d_1+1]},\ldots, a_{(d_2-1,d_1-1)}^{[(d_2-1)d_1 +d_1-1]} \right) \\
\end{align*}
\hrule
\vspace{1cm}
little endian $k=3$
\begin{align*}
\left( \left( \left(a_{(0,0,0)}^{[0]},a_{(0,0,1)}^{[1]},\ldots,a_{(0,0,d_1-1)}^{[d_1-1]} \right) \right. \right.\\
\left(a_{(0,1,0)}^{[d_1]},a_{(0,1,1)}^{[d_1+1]},\ldots,a_{(0,1,d_1-1)}^{[2d_1-1]} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left. \left(a_{(0,d_2-1,0)}^{[(d_2-1)d_1]},a_{(0,d_2-1,1)}^{[(d_2-1)d_1+1]},\ldots,a_{(0,d_2-1,d_1-1)}^{[d_1 d_2-1]} \right) \right) \\
\left( \left(a_{(1,0,0)}^{[d_1 d_2]},a_{(1,0,1)}^{[d_1 d_2+1]},\ldots,a_{(1,0,d_1-1)}^{[d_1 d_2+d_1-1]} \right) \right. \\
\left(a_{(1,1,0)}^{[d_1 d_2+d_1]},a_{(1,1,1)}^{[d_1 d_2+d_1+1]},\ldots,a_{(1,1,d_1-1)}^{[d_1 d_2+2d_1-1]} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left. \left(a_{(1,d_2-1,0)}^{[d_1 d_2+(d_2-1)d_1]},a_{(1,d_2-1,1)}^{[d_1 d_2+(d_2-1)d_1+1]},\ldots,a_{(1,d_2-1,d_1-1)}^{[d_1 d_2+(d_2-1)d_1+d_1-1]} \right) \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left( \left(a_{(d_3-1,0,0)}^{[(d_3-1)d_1 d_2]},a_{(d_3-1,0,1)}^{[(d_3-1)d_1 d_2+1]},\ldots,a_{(d_3-1,0,d_1-1)}^{[(d_3-1)d_1 d_2+d_1-1]} \right) \right. \\
\left(a_{(d_3-1,1,0)}^{[(d_3-1)d_1 d_2+d_1]},a_{(d_3-1,1,1)}^{[(d_3-1)d_1 d_2+d_1+1]},\ldots,a_{(1,1,d_1-1)}^{[(d_3-1)d_1 d_2+2d_1-1]} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left. \left. \left(a_{(d_3-1,d_2-1,0)}^{[(d_3-1)d_1 d_2+(d_2-1)d_1]},a_{(d_3-1,d_2-1,1)}^{[(d_3-1)d_1 d_2+(d_2-1)d_1+1]},\ldots,a_{(d_3-1,d_2-1,d_1-1)}^{[(d_3-1)d_1 d_2+(d_2-1)d_1+d_1-1]} \right)\right) \right) \\
\end{align*}
\hrule
\vspace{1cm}
little endian $k=4$
\begin{align*}
& \left( \left( \left( \left(a_{(0,0,0,0)}^{[0]},a_{(0,0,0,1)}^{[1]},\ldots,a_{(0,0,0,d_1-1)}^{[d_1-1]} \right) \right. \right. \right. \\
& \left(a_{(0,0,1,0)}^{[d_1]},a_{(0,0,1,1)}^{[d_1+1]},\ldots,a_{(0,0,1,d_1-1)}^{[2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left(a_{(0,0,d_2-1,0)}^{[(d_2-1)d_1]},a_{(0,0,d_2-1,1)}^{[(d_2-1)d_1+1]},\ldots,a_{(0,0,d_2-1,d_1-1)}^{[d_1 d_2-1]} \right) \right) \\
& \left( \left(a_{(0,1,0,0)}^{[d_1 d_2]},a_{(0,1,0,1)}^{[d_1 d_2+1]},\ldots,a_{(0,1,0,d_1-1)}^{[d_1 d_2+d_1-1]} \right) \right. \\
& \left(a_{(0,1,1,0)}^{[d_1 d_2+d_1]},a_{(0,1,1,1)}^{[d_1 d_2+d_1+1]},\ldots,a_{(0,1,1,d_1-1)}^{[d_1 d_2+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left(a_{(0,1,d_2-1,0)}^{[d_1 d_2+(d_2-1)d_1]},a_{(0,1,d_2-1,1)}^{[d_1 d_2+(d_2-1)d_1+1]},\ldots,a_{(0,1,d_2-1,d_1-1)}^{[d_1 d_2+(d_2-1)d_1+d_1-1]} \right) \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left( \left(a_{(0,d_3-1,0,0)}^{[(d_3-1)d_1 d_2]},a_{(0,d_3-1,0,1)}^{[(d_3-1)d_1 d_2+1]},\ldots,a_{(0,d_3-1,0,d_1-1)}^{[(0,d_3-1)d_1 d_2+d_1-1]} \right) \right. \\
& \left(a_{(0,d_3-1,1,0)}^{[(d_3-1)d_1 d_2+d_1]},a_{(0,d_3-1,1,1)}^{[(d_3-1)d_1 d_2+d_1+1]},\ldots,a_{(0,1,1,d_1-1)}^{[(d_3-1)d_1 d_2+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
%\\
& \left( \left( \left(a_{(1,0,0,0)}^{[d_1 d_2 d_3]},a_{(1,0,0,1)}^{[d_1 d_2 d_3+1]},\ldots,a_{(1,0,0,d_1-1)}^{[d_1 d_2 d_3+d_1-1]} \right) \right. \right.\\
& \left(a_{(1,0,1,0)}^{[d_1 d_2 d_3+d_1]},a_{(1,0,1,1)}^{[d_1 d_2 d_3+d_1+1]},\ldots,a_{(1,0,1,d_1-1)}^{[d_1 d_2 d_3+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left(a_{(1,0,d_2-1,0)}^{[d_1 d_2 d_3+(d_2-1)d_1]},a_{(1,0,d_2-1,1)}^{[d_1 d_2 d_3+(d_2-1)d_1+1]},\ldots,a_{(1,0,d_2-1,d_1-1)}^{[d_1 d_2 d_3+d_1 d_2-1]} \right) \right) \\
& \left( \left(a_{(1,1,0,0)}^{[d_1 d_2 d_3+d_1 d_2]},a_{(1,1,0,1)}^{[d_1 d_2 d_3+d_1 d_2+1]},\ldots,a_{(1,1,0,d_1-1)}^{[d_1 d_2 d_3+d_1 d_2+d_1-1]} \right) \right. \\
& \left(a_{(1,1,1,0)}^{[d_1 d_2 d_3+d_1 d_2+d_1]},a_{(1,1,1,1)}^{[d_1 d_2 d_3+d_1 d_2+d_1+1]},\ldots,a_{(1,1,1,d_1-1)}^{[d_1 d_2 d_3+d_1 d_2+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left(a_{(1,1,d_2-1,0)}^{[d_1 d_2 d_3+d_1 d_2+(d_2-1)d_1]},a_{(1,1,d_2-1,1)}^{[d_1 d_2 d_3+d_1 d_2+(d_2-1)d_1+1]},\ldots,a_{(1,1,d_2-1,d_1-1)}^{[d_1 d_2 d_3+d_1 d_2+(d_2-1)d_1+d_1-1]} \right) \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\end{align*}
\begin{align*}
& \left( \left(a_{(1,d_3-1,0,0)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2]},a_{(1,d_3-1,0,1)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+1]},\ldots,a_{(1,d_3-1,0,d_1-1)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+d_1-1]} \right) \right. \\
& \left(a_{(1,d_3-1,1,0)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+d_1]},a_{(1,d_3-1,1,1)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+d_1+1]},\ldots,a_{(1,1,1,d_1-1)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left. \left(a_{(1,d_3-1,d_2-1,0)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+(d_2-1)d_1]},a_{(1,d_3-1,d_2-1,1)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+(d_2-1)d_1+1]},\ldots,a_{(1,d_3-1,d_2-1,d_1-1)}^{[d_1 d_2 d_3+(d_3-1)d_1 d_2+(d_2-1)d_1+d_1-1]} \right)\right) \right) \\
%\\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
%\\
& \left( \left( \left(a_{(d_4-1,0,0,0)}^{[(d_4-1)d_1 d_2 d_3]},a_{(d_4-1,0,0,1)}^{[(d_4-1)d_1 d_2 d_3+1]},\ldots,a_{(d_4-1,0,0,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+d_1-1]} \right) \right. \right.\\
& \left(a_{(d_4-1,0,1,0)}^{[(d_4-1)d_1 d_2 d_3+d_1]},a_{(d_4-1,0,1,1)}^{[(d_4-1)d_1 d_2 d_3+d_1+1]},\ldots,a_{(d_4-1,0,1,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left(a_{(d_4-1,0,d_2-1,0)}^{[(d_4-1)d_1 d_2 d_3+(d_2-1)d_1]},a_{(d_4-1,0,d_2-1,1)}^{[(d_4-1)d_1 d_2 d_3+(d_2-1)d_1+1]},\ldots,a_{(d_4-1,0,d_2-1,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2-1]} \right) \right) \\
& \left( \left(a_{(d_4-1,1,0,0)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2]},a_{(d_4-1,1,0,1)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+1]},\ldots,a_{(d_4-1,1,0,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+d_1-1]} \right) \right. \\
& \left(a_{(d_4-1,1,1,0)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+d_1]},a_{(d_4-1,1,1,1)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+d_1+1]},\ldots,a_{(d_4-1,1,1,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left(a_{(d_4-1,1,d_2-1,0)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+(d_2-1)d_1]},a_{(d_4-1,1,d_2-1,1)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+(d_2-1)d_1+1]},\ldots,a_{(d_4-1,1,d_2-1,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+d_1 d_2+(d_2-1)d_1+d_1-1]} \right) \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left( \left(a_{(d_4-1,d_3-1,0,0)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2]},a_{(d_4-1,d_3-1,0,1)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+1]},\ldots,a_{(d_4-1,d_3-1,0,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+d_1-1]} \right) \right. \\
& \left(a_{(d_4-1,d_3-1,1,0)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+d_1]},a_{(d_4-1,d_3-1,1,1)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+d_1+1]},\ldots,a_{(d_4-1,1,1,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+2d_1-1]} \right) \\
& \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
& \left. \left. \left. \left(a_{(d_4-1,d_3-1,d_2-1,0)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+(d_2-1)d_1]},
%a_{(d_4-1,d_3-1,d_2-1,1)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+(d_2-1)d_1+1]},
\ldots,
%\right.\right.\right.\\
%&\ldots,\left.\left.\left.
a_{(d_4-1,d_3-1,d_2-1,d_1-1)}^{[(d_4-1)d_1 d_2 d_3+(d_3-1)d_1 d_2+(d_2-1)d_1+d_1-1]} \right)\right) \right) \right) \\
\end{align*}
\hrule
\iffalse
\begin{align*}
\left( \left( \left( a_{(0,0,0,0)},a_{(0,0,0,1)},\ldots,a_{(0,0,0,d_1-1)} \right) \right. \right. \\
\left( a_{(0,0,1,0)},a_{(0,0,1,1)},\ldots,a_{(0,0,1,d_1-1)} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left. \left( a_{(0,0,d_2-1,0)},a_{(0,0,d_2-1,1)},\ldots,a_{(0,0,d_2-1,d_1-1)} \right) \right) \\
\left( \left( a_{(0,1,0,0)},a_{(0,1,0,1)},\ldots,a_{(0,1,0,d_1-1)} \right) \right. \\
\left( a_{(0,1,1,0)},a_{(0,1,1,1)},\ldots,a_{(0,1,1,d_1-1)} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left. \left( a_{(0,1,d_2-1,0)},a_{(0,1,d_2-1,1)},\ldots,a_{(0,1,d_2-1,d_1-1)} \right) \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left( \left( a_{(0,d_3-1,0,0)},a_{(0,d_3-1,0,1)},\ldots,a_{(0,d_3-1,0,d_1-1)} \right) \right. \\
\left( a_{(0,d_3-1,1,0)},a_{(0,d_3-1,1,1)},\ldots,a_{(0,d_3-1,1,d_1-1)} \right) \\
\vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \hspace{1cm} \vdots \\
\left. \left( a_{(0,d_3-1,d_2-1,0)},a_{(0,d_3-1,d_2-1,1)},\ldots,a_{(0,d_3-1,d_2-1,d_1-1)} \right) \right) \\
\end{align*}
\fi
\iffalse
\begin{EnvTikzEspace}
\draw[->,>=latex] (0,0,0)--(1,0,0) node[right] {$\vec{\imath}$} ;
\draw[->,>=latex] (0,0,0)--(0,1,0) node[right] {$\vec{\jmath}$} ;
\draw[->,>=latex] (0,0,0)--(0,0,1) node[above] {$\vec{k}$} ;
\end{EnvTikzEspace}
\begin{EmpilementCubes}
\BlocPetitsCubes{1,2,3,4,5 / 0,2,1,1,3 / 0,2,1,1,2 / 1,1,1,1,3}
\end{EmpilementCubes}
\fi
\iffalse
\begin{tikzpicture}
\draw (0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle; % face arrière
\draw (0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle; % face avant
% arêtes horizontales, de larrière vers lavant
\draw (0,0,0) -- (0,0,1); % bas gauche
\draw (1,0,0) -- (1,0,1); % bas droit
\draw (1,1,0) -- (1,1,1); % haut droit
\draw (0,1,0) -- (0,1,1); % haut gauche
\end{tikzpicture}
\newcommand{\xangle}{13} %{15}
\newcommand{\yangle}{160}%{153}
\newcommand{\zangle}{90}
\newcommand{\xlength}{1}
\newcommand{\ylength}{1}
\newcommand{\zlength}{1}
\newcommand{\dimension}{1}% actually dimension-1
\pgfmathsetmacro{\xx}{\xlength*cos(\xangle)}
\pgfmathsetmacro{\xy}{\xlength*sin(\xangle)}
\pgfmathsetmacro{\yx}{\ylength*cos(\yangle)}
\pgfmathsetmacro{\yy}{\ylength*sin(\yangle)}
\pgfmathsetmacro{\zx}{\zlength*cos(\zangle)}
\pgfmathsetmacro{\zy}{\zlength*sin(\zangle)}
\begin{tikzpicture}
[ x={(\xx cm,\xy cm)},
y={(\yx cm,\yy cm)},
z={(\zx cm,\zy cm)},
]
\foreach \a in {0,...,\dimension}
{ \foreach \b in {0,...,\dimension}
{ \pgfmathsetmacro{\c}{100-\a*7-\b*7}
\draw[canvas is xy plane at z=\a, black!\c] (\b,0) -- (\b,\dimension) (0,\b) -- (\dimension,\b);
\draw[canvas is xz plane at y=\a, black!\c] (\b,0) -- (\b,\dimension) (0,\b) -- (\dimension,\b);
\draw[canvas is yz plane at x=\a, black!\c] (\b,0) -- (\b,\dimension) (0,\b) -- (\dimension,\b);
}
}
\pgfmathsetmacro{\dim}{\dimension-1}
\foreach \a in {0,...,\dimension}
{ \foreach \b in {0,...,\dimension}
{ \foreach \c in {0,...,\dimension}
{
\pgfmathsetmacro{\d}{\c+\b*\dimension+\a*\dimension*\dimension}
% \fill (\a,\b,\c) circle (0.05cm);
\node (1) at (\a,\b,\c) {$\d$};
}
}
}
\end{tikzpicture}
\fi
\end{document}