%load the fp-package for TeX
\chardef\FPcatamp=\the\catcode`\@
\catcode`@=11

\def\NeedsTeXFormat#1{}
\def\ProvidesPackage#1[#2]{}
\def\DeclareOption#1#2{}
\let\ProcessOptions\relax

%the for-loop of latex2e
\def\@nnil{\@nil}
\def\@empty{}
\def\@fornoop#1\@@#2#3{}
 
\def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else
    \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
 
\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
       #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
 
\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
       \let\@nextwhile\@fornoop \else
      #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}}

\edef\FP@loadedfiles{fp.tex}

\def\FP@alreadyloaded#1{}
\def\FP@notyetloaded#1{
  \edef\FP@loadedfiles{\FP@loadedfiles,#1}
  \input #1.sty
}
\def\RequirePackage#1{%
  \let\FP@in@\FP@notyetloaded%
  \edef\@tempb{#1}%
  \@for\@tempa:=\FP@loadedfiles\do{%
    \ifx\@tempa\@tempb%
      \let\FP@in@\FP@alreadyloaded%
    \fi%
  }%
  \FP@in@{#1}%
} 

\def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}%
  \iterate \let\iterate\relax}
\let\repeat=\fi

\RequirePackage{fp}

\catcode`\@=\FPcatamp
