[latex3-commits] [l3svn] branch master updated: Remove l3rand
noreply at latex-project.org
noreply at latex-project.org
Mon Nov 21 12:32:12 CET 2016
This is an automated email from the git hooks/post-receive script.
joseph pushed a commit to branch master
in repository l3svn.
The following commit(s) were added to refs/heads/master by this push:
new 3c5fab6 Remove l3rand
3c5fab6 is described below
commit 3c5fab6acf687a6d0b24537535bc16e5b24ad8d3
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Mon Nov 21 11:26:26 2016 +0000
Remove l3rand
We've decided to go with engine-level random values, so this code
is no longer required.
If the ideas are useful it is of course in the history.
---
l3trial/l3rand/build.lua | 21 --
l3trial/l3rand/l3rand.dtx | 587 ---------------------------------------------
l3trial/l3rand/l3rand.ins | 40 ---
3 files changed, 648 deletions(-)
diff --git a/l3trial/l3rand/build.lua b/l3trial/l3rand/build.lua
deleted file mode 100644
index 4a6589a..0000000
--- a/l3trial/l3rand/build.lua
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env texlua
-
--- Build script for LaTeX3 "l3rand" files
-
--- Identify the bundle and module: the module may be empty in the case where
--- there is no subdivision
-bundle = "l3trial"
-module = "l3rand"
-
--- Location of main directory: use Unix-style path separators
-maindir = "../.."
-
--- Non-standard settings
-testfiledir = ""
-
--- Load the common build code: this is the one place that a path needs to be
--- hard-coded
--- As the build system is 'self-contained' there is no module set up here: just
---load the file in a similar way to a TeX \input
-dofile (maindir .. "/build-config.lua")
-dofile (maindir .. "/l3build/l3build.lua")
diff --git a/l3trial/l3rand/l3rand.dtx b/l3trial/l3rand/l3rand.dtx
deleted file mode 100644
index 3f14982..0000000
--- a/l3trial/l3rand/l3rand.dtx
+++ /dev/null
@@ -1,587 +0,0 @@
-% \iffalse
-%
-%% File l3rand.dtx Copyright (C) 2011,2012,2016 The LaTeX3 Project
-%%
-%% It 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 file is part of the "l3trial bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-%
-%<*driver|package>
-\RequirePackage{expl3}
-\GetIdInfo$Id$
- {L3 Experimental pseudo-random number generator}
-%</driver|package>
-%<*driver>
-\documentclass[full]{l3doc}
-\usepackage{amsmath}
-\begin{document}
- \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \title{^^A
-% The \pkg{l3rand} package\\ Pseudo-random number generator^^A
-% \thanks{This file describes v\ExplFileVersion,
-% last revised \ExplFileDate.}^^A
-% }
-%
-% \author{^^A
-% The \LaTeX3 Project\thanks
-% {^^A
-% E-mail:
-% \href{mailto:latex-team at latex-project.org}
-% {latex-team at latex-project.org}^^A
-% }^^A
-% }
-%
-% \date{Released \ExplFileDate}
-%
-% \maketitle
-%
-% \begin{documentation}
-%
-% \section{\pkg{l3rand} documentation}
-%
-% \LaTeX3 comes with a pseudo-random number generator,
-% which has a period slightly greater than $2^{32}$.
-% The functions which produce random numbers can be used
-% in an expandable context, but \enquote{cleaning}
-% the random number generator with \cs{random_clean:}
-% as often as possible improves performance.
-%
-% For example, to produce a random $10$-letter \enquote{word},
-% you could do
-% \begin{verbatim}
-% \cs_generate_variant:Nn \tl_item:nn { nx }
-% \prg_replicate:nn { 10 }
-% {
-% \tl_item:nx
-% { ABCDEFGHIJKLMNOPQRSTUVWXYZ }
-% { \rand_range:nn {0} {25} }
-% }
-% \rand_clean:
-% \end{verbatim}
-%
-% \begin{function}{\rand_clean:}
-% \begin{syntax}
-% \cs{rand_clean:}
-% \end{syntax}
-% This non-expandable function improves the performance
-% of the expandable commands by reactualizing some data
-% which they use. Use it liberally, optimally between every
-% call to \cs{rand_get:} or \cs{rand_range:nn}.
-% \end{function}
-%
-% \begin{function}[EXP]{\rand_get:}
-% \begin{syntax}
-% \cs{rand_get:}
-% \end{syntax}
-% Expands to a pseudo-random halfword integer,
-% equidistributed in the interval $[0,65535]$.
-% \end{function}
-%
-% \begin{macro}[EXP]{\rand_range:nn}
-% \begin{syntax}
-% \cs{rand_range:nn} \Arg{min} \Arg{max}
-% \end{syntax}
-% Expands to a pseudo-random integer, equidistributed
-% in the range between \meta{min} and \meta{max} inclusive.
-% \end{macro}
-%
-% \begin{function}{\rand_seed:n}
-% \begin{syntax}
-% \cs{rand_seed:n} \Arg{int}
-% \end{syntax}
-% Sets the seed to \meta{int}.
-% By default, the seed is $1414618349$.
-% \end{function}
-%
-% \begin{function}{\rand_seed_from_time:}
-% \begin{syntax}
-% \cs{rand_seed_from_time:}
-% \end{syntax}
-% Sets the seed to a value determined using the date and time.
-% \end{function}
-%
-% \begin{variable}{\g_rand_a_int, \g_rand_b_int}
-% Power-users might want to change those from their
-% default values $a=4266$ and $b=10090$.
-% \end{variable}
-%
-% Open questions: plenty which I forgot.
-% \begin{itemize}
-% \item Add a function to pick a random item in a sequence, a tl,
-% a clist, a property list.
-% \item Should the \meta{max} be included for \cs{rand_range:nn}?
-% Pro: otherwise, \cs{c_max_int} is unattainable. Contra: not
-% consistent with \cs{seq_item:n} and friends. Pro: consistent
-% with \cs{int_step_inline:nnnn}.
-% \item Should expandable errors state which module they come from?
-% \end{itemize}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3rand} implementation}
-%
-% \begin{macrocode}
-%<*initex|package>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage
- {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-%</package>
-% \end{macrocode}
-%
-% Generate pseudo-random numbers with a generalization of linear
-% congruential generators (see Knuth, section 3.2.1. and further).
-% We work modulo the prime number $p = 65537$, and use the linear
-% recursion relation $X_n \equiv 4266 X_{n-1} + 10090 X_{n-2} \mod p$.
-% For every $n$, $X_n \in [0, 65536]$, and this relation always
-% gives a positive result with no overflow. The |\int_mod:nn| function
-% operates safely to produce the next number in $[0,65536]$.
-%
-% These values were taken so that the polynomial $x^2 - 4266 x - 10090$
-% is primitive modulo $p$, which ensures that the recursion has a
-% maximal period, namely $p^2 - 1 > 2^{32}$. Pairs of consecutive
-% random numbers take all combined values modulo $p$, except for
-% the pair $(0,0)$. In order to get a fully uniform distribution
-% we skip any $0$ appearing in the sequence, and subtract $1$ to
-% each number, thus getting numbers in the range $[0,65535]$.
-%
-% We denote the last pseudo-random number by $X$ and the previous one
-% by $Y$. There will be two channels of computation for those numbers,
-% non-expandably, and with a more convoluted expandable technique.
-%
-% \subsection{Variables}
-%
-% \begin{variable}{\c_rand_p_int}
-% The modulus $p=65537$ is stored as \cs{c_rand_p_int}.
-% It must be prime, and at least $2^{16}$. Changing that
-% value requires updating \cs{rand_get_end:www}.
-% \begin{macrocode}
-\int_const:Nn \c_rand_p_int { 65537 }
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}{\g_rand_a_int, \g_rand_b_int}
-% The coefficients of the linear recursion $a$ and $b$
-% are \cs{g_rand_a_int} and \cs{g_rand_b_int}.
-% The values for $a$ and $b$ must be such that the corresponding unital
-% quadratic polynomial is primitive modulo $p$. Also, details below
-% require them to be positive, and such that $(p-1)(a+b)$ does not
-% overflow.
-% \begin{macrocode}
-\int_new:N \g_rand_a_int
-\int_new:N \g_rand_b_int
-\int_gset:Nn \g_rand_a_int { 4266 }
-\int_gset:Nn \g_rand_b_int { 10090 }
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}{\g_rand_X_int, \g_rand_Y_int}
-% \begin{macro}{\rand_seed:n}
-% \begin{macro}{\rand_seed_from_time:}
-% Starting from an arbitrary \TeX{} integer (in the range
-% $[-2^{31}+1, 2^{31}-1]$), we build two blocks of $16$ bits.
-% One key requirement is that $(0,0)$ cannot be generated,
-% and that the two resulting numbers are at most $65536$.
-% \begin{macrocode}
-\int_new:N \g_rand_X_int
-\int_new:N \g_rand_Y_int
-\cs_new_protected:Npn \rand_seed:n #1
- {
- \int_gset:Nn \g_rand_X_int
- {
- 32768 + \int_div_truncate:nn {#1} {65536}
- \int_compare:nNnF {#1} < \c_zero { + \c_one }
- }
- \int_gset:Nn \g_rand_Y_int { \int_mod:nn {#1} {65536} }
- \prg_replicate:nn \c_ten \rand_step:
- }
-\cs_new_protected:Npn \rand_seed_from_time:
- {
- \exp_args:Nf
- \rand_seed:n
- {
- \int_eval:n
- {
- ( ( \tex_year:D + 99*\tex_month:D + \tex_day:D ) * 9999
- + \tex_time:D )
- \int_if_even:nF { \tex_time:D } { *\c_minus_one }
- }
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{variable}
-%
-% \begin{variable}{\l_rand_tmp_int}
-% A temporary variable used to store the value of $X$
-% when computing the next $(X,Y)$ pair.
-% \begin{macrocode}
-\int_new:N \l_rand_tmp_int
-% \end{macrocode}
-% \end{variable}
-%
-% \subsection{Halfword random integers}
-%
-% To avoid overflow, we work in a rather small modulus, and the raw
-% random integers which are produced lie in the range $[0,p-1]$,
-% which is a little bit more than a halfword ($2^{16}$). In this
-% section, we build those halfword random integers, which will be
-% put together in the next section to cater for arbitrary ranges.
-%
-% \begin{macro}[int]{\rand_step:}
-% Generating new terms in the pseudo-random sequence is quite
-% easy when assignments are allowed. Namely, we wish to replace
-% $(X, Y)$ by $( aX + bY \mod p, X)$. Save $X$ in a temporary
-% variable, compute the new value of $X$, then store the old
-% value of $X$ in $Y$. Since $aX+bY$ is always positive (and
-% does not overflow), |\int_mod:nn| produces a non-negative
-% result, at most $p-1$.
-% \begin{macrocode}
-\cs_new_protected:Npn \rand_step:
- {
- \int_set_eq:NN \l_rand_tmp_int \g_rand_X_int
- \int_gset:Nn \g_rand_X_int
- {
- \int_mod:nn
- {
- \g_rand_a_int * \g_rand_X_int
- + \g_rand_b_int * \g_rand_Y_int
- }
- { \c_rand_p_int }
- }
- \int_gset_eq:NN \g_rand_Y_int \l_rand_tmp_int
- }
-% \end{macrocode}
-% \end{macro}
-%
-% We now work towards getting pseudo-random numbers expandably.
-% The only way for \TeX{} to give different results when expanding
-% the same command is if its internal state has changed.
-% Unfortunately, we cannot change $X$ and $Y$ expandably. The
-% only change in the internal state of \TeX{} that can be performed
-% expandably is \enquote{raising flags} (described below). We can
-% only store in this manner the number $n$ of times the expandable
-% pseudo-random number generator was called. To produce a new
-% random number, start from $X$ and $Y$ and apply the recursion
-% relation $n$ times, and raise one more flag (so as to increase $n$).
-%
-% \begin{macro}[int]{\rand_aux_flag_off:x}
-% \begin{macro}[int,EXP]{\rand_aux_flag_on:x}
-% \begin{macro}[int,EXP,TF]{\rand_aux_flag_if_on:x}
-% A flag is \enquote{on} if it is equal to \tn{relax}, and
-% \enquote{off} if it is \texttt{undefined}. In an expansion
-% context, we can test whether a flag is on or off, and turn
-% flags on: indeed, in a \cs{cs:w} \ldots{} \cs{cs_end:}
-% construction (and in |c| arguments), if the corresponding
-% control sequence is undefined, it gets assigned \tn{relax}.
-% Turning a flag back off from \tn{relax} to \texttt{undefined}
-% is not expandable.
-% In the current application, the flag label, |#1| is always
-% a positive integer.
-% \begin{macrocode}
-\cs_new_protected:Npn \rand_aux_flag_off:x #1
- { \cs_set_eq:cN { l_rand_#1_flag } \tex_undefined:D }
-\cs_new:Npn \rand_aux_flag_on:x #1
- { \exp_args:Nc \use_none:n { l_rand_#1_flag } }
-\prg_new_conditional:Npnn \rand_aux_flag_if_on:x #1 { T, TF }
- {
- \if_cs_exist:w l_rand_#1_flag \cs_end:
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[EXP]{\rand_get:}
-% \begin{macro}[EXP,aux]{\rand_get_loop:www}
-% \begin{macro}[EXP,aux]{\rand_get_end:www}
-% Count the number of raised flags, and do one step of the
-% recursion for each raised flag. The first argument of
-% \cs{rand_get_loop:www} is the label for the flag,
-% the second and third are the temporary $X$ and $Y$.
-% The new values after one step are $aX+bY \mod p$ and $X$.
-% Once we have gone through all the raised flags, the current
-% value of $X$ is roughly to be returned to the user. However,
-% to get a proper halfword, we throw away any zero, and subtract
-% $1$: the resulting range is $[0,2^{16}-1]$, equidistributed.
-% \begin{macrocode}
-\cs_new:Npn \rand_get:
- {
- \int_eval:n
- {
- \rand_get_loop:www 1 ;
- \g_rand_X_int ;
- \g_rand_Y_int ;
- }
- }
-\cs_new:Npn \rand_get_loop:www #1 ; #2 ; #3 ;
- {
- \rand_aux_flag_if_on:xTF {#1}
- {
- \exp_after:wN \rand_get_loop:www
- \__int_value:w \__int_eval:w \c_one +
- }
- { \exp_after:wN \rand_get_end:www \__int_value:w }
- #1 \exp_after:wN ;
- \__int_value:w
- \int_mod:nn
- { \g_rand_a_int * #2 + \g_rand_b_int * #3 }
- { \c_rand_p_int }
- ;
- #2 ;
- }
-\cs_new:Npn \rand_get_end:www #1 ; #2 ; #3 ;
- {
- \rand_aux_flag_on:x {#1}
- \if_int_compare:w #2 = \c_zero
- \rand_aux_flag_on:x { \int_eval:n { #1 + \c_one } }
- \int_mod:nn { \g_rand_b_int * #3 } { \c_rand_p_int }
- \else:
- #2
- \fi:
- - \c_one
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\rand_clean:}
-% \begin{macro}[aux]{\rand_clean_loop:w}
-% When using \cs{rand_get:} repeatedly, we need a mechanism
-% to eliminate the flags (\enquote{clean} the mess that was
-% brought by insisting on being expandable). Otherwise,
-% producing the $n$-th pseudo-random number takes a time
-% proportional to $n$. Cleaning involves both putting the
-% flags down and updating the values of $X$ and $Y$
-% by calling \cs{rand_step:}.
-% \begin{macrocode}
-\cs_new_protected:Npn \rand_clean:
- { \rand_clean_loop:w 1 ; }
-\cs_new_protected:Npn \rand_clean_loop:w #1 ;
- {
- \rand_aux_flag_if_on:xT {#1}
- {
- \rand_aux_flag_off:x {#1}
- \rand_step:
- \exp_after:wN \rand_clean_loop:w
- \int_use:N \__int_eval:w \c_one + #1 \exp_after:wN ;
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Random integers in arbitrary ranges}
-%
-% \begin{macro}[EXP]{\rand_range:nn}
-% \begin{macro}[EXP,aux]{\rand_range_aux:ww}
-% First evaluate the arguments of \cs{rand_range:nn}
-% because they would otherwise be computed many times.
-% This could be especially bad in some typical cases
-% such as picking up a random item from a sequence.
-% \begin{verbatim}
-% \seq_item:Nn \l_foo_seq
-% { \rand_range:nn {0} { \seq_count:N \l_foo_seq - 1 } }
-% \end{verbatim}
-% Once this is evaluated, check that the bounds are ordered
-% correctly. If not, return the smallest of the two,
-% and raise an error when relevant. If the bounds are correctly
-% ordered, check whether the difference |#2-#1| might cause an
-% overflow or not, and branch accordingly to
-% \cs{rand_range_large:nn} or \cs{rand_range_small:nn}.
-% \begin{macrocode}
-\cs_new:Npn \rand_range:nn #1#2
- {
- \int_eval:n
- {
- \exp_after:wN \rand_range_aux:ww
- \__int_value:w \__int_eval:w #1 \exp_after:wN ;
- \__int_value:w \__int_eval:w #2 ;
- }
- }
-\cs_new:Npn \rand_range_aux:ww #1 ; #2 ;
- {
- \if_int_compare:w #1 < #2 \exp_stop_f:
- \if_int_compare:w
- \__int_eval:w #2 / 65536 - #1 / 65536 \__int_eval_end:
- < 32767 \exp_stop_f:
- \rand_range_small:nn {#1} {#2}
- \else:
- \rand_range_large:nn {#1} {#2}
- \fi:
- \else:
- \if_int_compare:w #1 > #2 \exp_stop_f:
- \__msg_kernel_expandable_error:nnnn
- { rand } { bad-range } {#1} {#2}
- \fi:
- #1
- \fi:
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[EXP,aux]{\rand_range_small:nn}
-% \begin{macro}[EXP,aux]{\rand_range_small_aux:nnn}
-% |\rand_get: * 32768 + \rand_get: / \c_two| produces an uniformly
-% distributed integer in the interval $[0,2^{31}-1]$. The idea is then
-% to rescale that interval to the desired range. We wish all the
-% integers in the result to have equal probability of appearing, thus,
-% among the $2^{31}$ numbers, that our random number generator can
-% produce, we will only keep
-% $k(\mathtt{\#2} - \mathtt{\#1} + 1) < 2^{31}$ of them for the
-% largest possible integer $k$. This integer is found using
-% \cs{int_div_truncate:nn}. The \enquote{outer}
-% \cs{int_div_truncate:nn} does the range rescaling and produces a
-% result which is typically between $0$ and
-% $\mathtt{\#2} - \mathtt{\#1}$ inclusive. Adding |#1| to that
-% randomly generated number would end. However, we still need to
-% throw away some of the $2^{31}$ numbers, namely those which give
-% a result larger than |#2|; in that case, we start again from
-% \cs{rand_range_small:nn} with new random numbers.
-% \begin{macrocode}
-\cs_new:Npn \rand_range_small:nn #1#2
- {
- \exp_args:Nf \rand_range_small_aux:nnn
- {
- \int_eval:n
- {
- #1 +
- \int_div_truncate:nn
- { \rand_get: * 32768 + \rand_get: / \c_two }
- { \int_div_truncate:nn \c_max_int { #2 - #1 + \c_one } }
- }
- }
- {#1}
- {#2}
- }
-\cs_new:Npn \rand_range_small_aux:nnn #1#2#3
- {
- \if_int_compare:w #1 > #3 \exp_stop_f:
- \rand_range_small:nn {#2} {#3}
- \else:
- #1
- \fi:
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[EXP,aux]{\rand_range_large:nn}
-% \begin{macro}[EXP,aux]{\rand_range_large_aux:wwnn}
-% \begin{macro}[EXP,aux]{\rand_range_large_aux:nwnn}
-% In this case, |#2| and |#1| are too far apart to be able
-% to compute their difference safely. This implies that the
-% interval covers at least half of the interval
-% $[-(2^{31}-1),2^{31}-1]$. Thus, a viable (but slightly wasteful)
-% strategy is to produce random numbers in that interval,
-% and throw them away if they don't fit in the desired range.
-% The first step is to expand the random numbers, then
-% \cs{rand_range_large_aux:wwnn} feeds an integer in the
-% relevant interval to the next auxiliary, and if it fails,
-% it calls the original \cs{rand_range_large:nn} function,
-% to get new random numbers. The third function is responsible
-% for filtering out the results which fall outside the relevant
-% range. Again, it calls \cs{rand_range_large:nn} in case
-% of failure.
-% \begin{macrocode}
-\cs_new:Npn \rand_range_large:nn
- {
- \exp_after:wN \rand_range_large_aux:wwnn
- \__int_value:w \rand_get: \exp_after:wN ;
- \__int_value:w \rand_get: ;
- }
-\cs_new:Npn \rand_range_large_aux:wwnn #1 ; #2 ; #3 #4
- {
- \if_int_compare:w #1 = \c_zero
- \if_int_compare:w #2 > \c_zero
- \exp_args:Nf \rand_range_large_aux:nwnn
- { \int_eval:n { - \c_max_int + #2 - \c_one } }
- \fi:
- \else:
- \exp_args:Nf \rand_range_large_aux:nwnn
- { \int_eval:n { ( #1 - 32768 ) * 65536 + #2 } }
- \fi:
- \rand_range_large:nn {#3} {#4}
- }
-\cs_new:Npn \rand_range_large_aux:nwnn
- #1 #2 \rand_range_large:nn #3 #4
- {
- #2
- \if_int_compare:w #1 > #3 \exp_stop_f:
- \if_int_compare:w #1 < #4 \exp_stop_f:
- #1
- \exp_after:wN \exp_after:wN
- \exp_after:wN \use_none:nnn
- \fi:
- \fi:
- \rand_range_large:nn {#3} {#4}
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Messages}
-%
-% \begin{macrocode}
-\__msg_kernel_new:nnn { rand } { bad-range }
- { Invalid~range~[#1,#2]~for~random~numbers. }
-% \end{macrocode}
-%
-% \subsection{Initialization of the seed}
-%
-% The random number generator is seeded with a completely arbitrary number.
-% \begin{macrocode}
-\rand_seed:n { 1414618349 }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</initex|package>
-% \end{macrocode}
-%
-% \end{implementation}
-%
-% \PrintIndex
diff --git a/l3trial/l3rand/l3rand.ins b/l3trial/l3rand/l3rand.ins
deleted file mode 100644
index f913a13..0000000
--- a/l3trial/l3rand/l3rand.ins
+++ /dev/null
@@ -1,40 +0,0 @@
-\iffalse meta-comment
-
-File l3rand.ins Copyright (C) 2011 The LaTeX3 Project
-
-It 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 file is part of the "l3trial bundle" (The Work in LPPL)
-and all files in that bundle must be distributed together.
-
-The released version of this bundle is available from CTAN.
-
-\fi
-
-\input docstrip.tex
-\askforoverwritefalse
-
-\preamble
-
-EXPERIMENTAL CODE
-
-Do not distribute this file without also distributing the
-source files specified above.
-
-Do not distribute a modified version of this file.
-
-\endpreamble
-% stop docstrip adding \endinput
-\postamble
-\endpostamble
-
-\keepsilent
-
-\generate{\file{l3rand.sty} {\from{l3rand.dtx} {package}}}
-
-\endbatchfile
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the latex3-commits
mailing list