%%
%% This is file `tikzlibrarytilings.penrose.code.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% tilings_code.dtx  (with options: `penrose')
%% ----------------------------------------------------------------
%% tilings --- TikZ library for producing tilings
%% E-mail: loopspace@mathforge.org
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%% 
\RequirePackage{tikz}
\usetikzlibrary{tilings}
\ProvidesFile {tikzlibrarytilings.penrose.code.tex}
[2023/06/01 v2.0 TikZ pics for Penrose tiles]
\DefineTile{thin rhombus}{a A B b}
{
 {0 , 0}
 {cosd(18) , sind(18)}
 {2*cosd(18) , 0}
 {cosd(18) , -sind(18)}
}
\DefineTile{thick rhombus}{B a A b}
{
 {0 , 0}
 {cosd(36) , sind(36)}
 {2*cosd(36) , 0}
 {cosd(36) , -sind(36)}
}
\DefineTile{dart}{c a A C}
{
 {0 , 0}
 {2*sind(18)*cosd(108) , 2*sind(18)*sind(108)}
 {2*sind(18) , 0}
 {2*sind(18)*cosd(108) , -2*sind(18)*sind(108)}
}
\DefineTile{kite}{a c C A}
{
 {0 , 0}
 {cosd(36) , sind(36)}
 {1 , 0}
 {cosd(36) , -sind(36)}
}
\DefineTile{golden triangle}{a c b}
{
 {0 , 0}
 {cosd(18) , sind(18)}
 {cosd(18) , -sind(18)}
}
\DefineTile {reverse golden triangle}{B C A}
{
 {0 , 0}
 {cosd(18) , sind(18)}
 {cosd(18) , -sind(18)}
}
\DefineTile {golden gnomon}{C b A}
{
 {0 , 0}
 {cosd(36) , sind(36)}
 {2*cosd(36) , 0}
}
\DefineTile {reverse golden gnomon}{a B c}
{
 {0 , 0}
 {2*cosd(36) , 0}
 {cosd(36) , -sind(36)}
}
\DefineTile {pentagon 5}{a a a a a}
{
 {0 , 0}
 {cosd(108) , sind(108)}
 {1+cosd(72)+cosd(144) , sind(72)+sind(144)}
 {1+cosd(72) , sind(72)}
 {1 , 0}
}
\DefineTile {pentagon 3}{A b a a b}
{
 {0 , 0}
 {cosd(108) , sind(108)}
 {1+cosd(72)+cosd(144) , sind(72)+sind(144)}
 {1+cosd(72) , sind(72)}
 {1 , 0}
}
\DefineTile {pentagon 2}{d A e c A}
{
 {0 , 0}
 {cosd(108) , sind(108)}
 {1+cosd(72)+cosd(144) , sind(72)+sind(144)}
 {1+cosd(72) , sind(72)}
 {1 , 0}
}
\DefineTile {pentagram}{C E C E C E C E C E}
{
  {1 , 0}
  {1-cosd(36) , -sind(36)}
  {1-cosd(36)-cosd(108) , -sind(36)-sind(108)}
  {cosd(108) , -sind(108)}
  {-1+3*cosd(108)+cosd(36) , -sind(36)-sind(108)}
  {-1+2*cosd(108)+cosd(36) , -sind(36)}
  {-1+2*cosd(108) , 0}
  {2*cosd(108) , 0}
  {cosd(108) , sind(108)}
  {0 , 0}
}
\DefineTile {boat}{C E C E B D B}
{
 {-1+2*cosd(108) , 0}
 {2*cosd(108) , 0}
 {cosd(108) , sind(108)}
 {0 , 0}
 {1 , 0}
 {1-cosd(36) , -sind(36)}
 {-1+2*cosd(108)+cosd(36) , -sind(36)}
}
\DefineTile {diamond}{D B B D}
{
 {0 , 0}
 {cosd(18) , sind(18)}
 {2*cosd(18) , 0}
 {cosd(18) , -sind(18)}
}
\tikzset{
  every thin rhombus before path/.code={
    \path[every circle arc/.try] (-edge a end) circle[radius=1/4];
    \path[every long arc/.try] (-edge b start) circle[radius=1/4];
  },
  every thick rhombus before path/.code={
    \path[every circle arc/.try] (-edge a end) circle[radius=1/4];
    \path[every long arc/.try] (-edge B start) circle[radius=3/4];
  },
  every kite before path/.code={
    \path[every circle arc/.try] (-edge a start) circle[radius=2/(sqrt(5)+1)];
    \path[every long arc/.try] (-edge c end) circle[radius=2/(3+sqrt(5))];
  },
  every dart before path/.code={
    \path[every circle arc/.try] (-edge a end) circle[radius=1 - 2/(sqrt(5)+1)];
    \path[every long arc/.try] (-edge c start) circle[radius=2/(sqrt(5)+1) - 2/(3+sqrt(5))];
  }
}
\BakeTile {thin rhombus}
\BakeTile {thick rhombus}
\BakeTile {dart}
\BakeTile {kite}
\BakeTile {golden triangle}
\BakeTile {reverse golden triangle}
\BakeTile {golden gnomon}
\BakeTile {reverse golden gnomon}
\BakeTile {pentagon 5}
\BakeTile {pentagon 3}
\BakeTile {pentagon 2}
\BakeTile {pentagram}
\BakeTile {boat}
\BakeTile {diamond}
\ExplSyntaxOn
\prop_new:N \g__tilings_rhombus_lms_rule_prop
\prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {T} {[f*sT][f>g]}
\prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {t} {[f_st][f>G]}
\prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {G} {[f+sG][sf>g][sf*sT]}
\prop_gput:Nnn \g__tilings_rhombus_lms_rule_prop {g} {[f-sg][sf>G][sf_st]}
\prop_new:N \g__tilings_kite_lms_rule_prop
\prop_gput:Nnn \g__tilings_kite_lms_rule_prop {T} {[f*sT][f>st][+sg]}
\prop_gput:Nnn \g__tilings_kite_lms_rule_prop {t} {[f_st][f>sT][-sG]}
\prop_gput:Nnn \g__tilings_kite_lms_rule_prop {G} {[f*+sG][sT]}
\prop_gput:Nnn \g__tilings_kite_lms_rule_prop {g} {[f-_sg][st]}
\prop_new:N \g__tilings_pentagon_lms_rule_prop
\prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {P}
{[s>P][1sF+Q][1+sF+Q][1*sF+Q][1-sF+Q][1_sF+Q]} % pentagon 5
\prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {Q}
{[s>P][1+sFR][1*sF*R][1-sF+Q][1_sF+Q][1sF+Q][->fsD]} % pentagon 3
\prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {R}
{[s>P][1-sF+Q][1+sF*R][1*sFR][1_sF*R][1sFR][_>fsD][>fsD]} % pentagon 2
\prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {G}
{
  [s>G]
  [se[>d+R][e1B]]
  [+se[>d+R][e1B]]
  [-se[>d+R][e1B]]
  [*se[>d+R][e1B]]
  [_se[>d+R][e1B]]
} % pentagram
\prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {B}
{
  [s>G]
  [se[>d+R][e1B]]
  [+se[>d+R][e1B]]
  [-se[>d+R][e1B]]
} % boat
\prop_gput:Nnn \g__tilings_pentagon_lms_rule_prop {D}
{[s>d+R][s>eG][se1B]} % diamond
\prop_gset_eq:NN \g__tilings_rtriangle_lms_rule_prop
\g__tilings_rhombus_lms_rule_prop
\prop_gset_eq:NN \g__tilings_ktriangle_lms_rule_prop
\g__tilings_kite_lms_rule_prop
\prop_gput:Nnn \g__tilings_drawables_lms_prop {rhombus} {TG}
\prop_gput:Nnn \g__tilings_drawables_lms_prop {kite} {Tg}
\prop_gput:Nnn \g__tilings_drawables_lms_prop {rtriangle} {TtGg}
\prop_gput:Nnn \g__tilings_drawables_lms_prop {ktriangle} {TtGg}
\prop_gput:Nnn \g__tilings_drawables_lms_prop {pentagon} {PQRGBD}
\prop_new:N \g__tilings_rhombus_lms_action_prop
\prop_new:N \g__tilings_kite_lms_action_prop
\prop_new:N \g__tilings_rtriangle_lms_action_prop
\prop_new:N \g__tilings_ktriangle_lms_action_prop
\prop_new:N \g__tilings_pentagon_lms_action_prop
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {+}
{\pgftransformrotate{144}}
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {*}
{\pgftransformrotate{108}}
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {-}
{\pgftransformrotate{216}}
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {_}
{\pgftransformrotate{252}}
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {>}
{\pgftransformrotate{180}}
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {s} {
  \fp_set:Nn \l__tilings_tmpa_fp { 2 * sind(18) * \l__tilings_step_dim }
  \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gset_eq:NN \g__tilings_rtriangle_lms_action_prop
\g__tilings_rhombus_lms_action_prop
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {T} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{198}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*2*cosd(18)}
  \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ thin~ rhombus/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{thin~rhombus}
  \group_end:
}
\prop_gput:Nnn \g__tilings_rhombus_lms_action_prop {G} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ thick~ rhombus/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{thick~rhombus}
  \group_end:
}
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {+} {\pgftransformrotate{36}}
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {*} {\pgftransformrotate{108}}
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {-} {\pgftransformrotate{-36}}
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {_}
{\pgftransformrotate{-108}}
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {>} {\pgftransformrotate{180}}
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {s} {
  \fp_set:Nn \l__tilings_tmpa_fp { 2 * sind(18) * \l__tilings_step_dim }
  \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gset_eq:NN \g__tilings_ktriangle_lms_action_prop
\g__tilings_kite_lms_action_prop
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {T} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{36}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ kite/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{kite}
  \group_end:
}
\prop_gput:Nnn \g__tilings_kite_lms_action_prop {g} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{144}
  \pgftransformxshift{-\l__tilings_step_dim * 2 * sin(18)}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ dart/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{dart}
  \group_end:
}
\prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {T} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{18}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ reverse~ golden~ triangle/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{reverse~ golden~ triangle}
  \group_end:
}
\prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {t} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{-18}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ golden~ triangle/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{golden~ triangle}
  \group_end:
}
\prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {G} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{180}
  \pgftransformxshift{-\l__tilings_step_dim}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ reverse~ golden~ gnomon/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{reverse~ golden~ gnomon}
  \group_end:
}
\prop_gput:Nnn \g__tilings_rtriangle_lms_action_prop {g} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{180}
  \pgftransformxshift{-\l__tilings_step_dim}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ golden~ gnomon/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{golden~ gnomon}
  \group_end:
}
\prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {T} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{18}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ reverse~ golden~ triangle/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{reverse~ golden~ triangle}
  \group_end:
}
\prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {t} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{-18}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ golden~ triangle/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{golden~ triangle}
  \group_end:
}
\prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {G} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{180}
  \pgftransformxshift{-\l__tilings_step_dim}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ reverse~ golden~ gnomon/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{reverse~ golden~ gnomon}
  \group_end:
}
\prop_gput:Nnn \g__tilings_ktriangle_lms_action_prop {g} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{180}
  \pgftransformxshift{-\l__tilings_step_dim}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)/(2*cosd(36))}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ golden~ gnomon/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{golden~ gnomon}
  \group_end:
}
\int_new:N \l__tilings_pentagon_parity_int
\seq_new:N \l__tilings_pentagon_parity_seq
\seq_set_from_clist:Nn \l__tilings_pentagon_parity_seq {odd,even}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {1} {
  \int_set:Nn \l__tilings_pentagon_parity_int
  {3 -  \l__tilings_pentagon_parity_int}
}
\tikzset{
  every~ pentagon~ decomposition/.code={%
    \int_set:Nn \l__tilings_pentagon_parity_int {2}
  }
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {+}
{\pgftransformrotate{72}}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {*}
{\pgftransformrotate{144}}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {-}
{\pgftransformrotate{288}}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {_}
{\pgftransformrotate{216}}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {>}
{\pgftransformrotate{180}}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {|}
{\pgftransformxscale{-1}}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {s} {
  \fp_set:Nn \l__tilings_tmpa_fp
  {
    1/(2 + 2 * cosd(72) ) * \l__tilings_step_dim
  }
  \dim_set:Nn \l__tilings_step_dim {\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {f} {
  \fp_set:Nn \l__tilings_tmpa_fp {  tand(54)/2 * \l__tilings_step_dim }
  \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {F} {
  \fp_set:Nn \l__tilings_tmpa_fp {  tand(54) * \l__tilings_step_dim }
  \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {d} {
  \fp_set:Nn \l__tilings_tmpa_fp
  {
    (tand(54)/2 - tand(72)/2 + sind(36) ) * \l__tilings_step_dim
  }
  \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {e} {
  \fp_set:Nn \l__tilings_tmpa_fp
  {
    tand(54) * cosd(36) * \l__tilings_step_dim
  }
  \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp}
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {P} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/2}
  \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)/2}
  \pgftransformyshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ pentagon/.try,
    every~
    \seq_item:Nn \l__tilings_pentagon_parity_seq
    {\l__tilings_pentagon_parity_int}
    \space pentagon/.try,
    every~ pentagon~ 5/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{pentagon~5}
  \group_end:
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {Q} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/2}
  \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)/2}
  \pgftransformyshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ pentagon/.try,
    every~
    \seq_item:Nn \l__tilings_pentagon_parity_seq
    {\l__tilings_pentagon_parity_int}
    \space pentagon/.try,
    every~ pentagon~ 3/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{pentagon~3}
  \group_end:
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {R} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/2}
  \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)/2}
  \pgftransformyshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ pentagon/.try,
    every~
    \seq_item:Nn \l__tilings_pentagon_parity_seq
    {\l__tilings_pentagon_parity_int}
    \space pentagon/.try,
    every~ pentagon~ 2/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{pentagon~2}
  \group_end:
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {G} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*cosd(72)}
  \pgftransformxshift{\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)*cosd(72)}
  \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ pentagram/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{pentagram}
  \group_end:
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {B} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*cosd(72)}
  \pgftransformxshift{\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*tand(54)*cosd(72)}
  \pgftransformyshift{\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ boat/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{boat}
  \group_end:
}
\prop_gput:Nnn \g__tilings_pentagon_lms_action_prop {D} {
  \group_begin:
  \int_gincr:N \g__tilings_tile_int
  \pgftransformrotate{90}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim*cosd(18)}
  \pgftransformxshift{-\fp_to_dim:N \l__tilings_tmpa_fp}
  \fp_set:Nn \l__tilings_tmpa_fp {\l__tilings_step_dim/(1cm)}
  \pgftransformscale{\fp_use:N \l__tilings_tmpa_fp}
  \tl_set:Nx \l__tilings_tmpc_tl
  {
    {\int_use:N  \g__tilings_tile_int}
    {\int_use:N \g__tilings_tiles_int}
  }
  \UseTile[
    every~ tile/.try,
    every~ diamond/.try,
    tile~ \int_use:N \g__tilings_tile_int/.try,
    tile/.try/.expand~ once=\l__tilings_tmpc_tl
  ]{diamond}
  \group_end:
}
\ExplSyntaxOff
%% 
%% Copyright (C) 2014-2023 by Andrew Stacey <loopspace@mathforge.org>
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License (LPPL), either
%% version 1.3c of this license or (at your option) any later
%% version.  The latest version of this license is in the file:
%% 
%% http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status) by
%% Andrew Stacey.
%% 
%% This work consists of the files  penrose_code.dtx
%%                                  penrose.tex
%% and the derived files            penrose.ins
%%                                  penrose_code.pdf
%%                                  penrose.pdf
%%                                  tikzlibrarytilings.code.tex
%%                                  tikzlibrarytilings.penrose.code.tex
%%                                  tikzlibrarytilings.polykite.code.tex
%%                                  tikzlibrarypenrose.code.tex
%%                                  README.txt
%% 
%%
%% End of file `tikzlibrarytilings.penrose.code.tex'.
