component mux4 "Select from one of four input values";
pin in bit sel0;
pin in bit sel1 """\
Together, these determine which \\fBin\\fIN\\fR value is copied to \\fBout\\fR.
""";
pin out float out """\
Follows the value of one of the \\fBin\\fIN\\fR values according to the two \\fBsel\\fR values
.RS
.TP
\\fBsel1=FALSE\\fR, \\fBsel0=FALSE\\fR
\\fBout\\fR follows \\fBin0\\fR
.TP
\\fBsel1=FALSE\\fR, \\fBsel0=TRUE\\fR
\\fBout\\fR follows \\fBin1\\fR
.TP
\\fBsel1=TRUE\\fR, \\fBsel0=FALSE\\fR
\\fBout\\fR follows \\fBin2\\fR
.TP
\\fBsel1=TRUE\\fR, \\fBsel0=TRUE\\fR
\\fBout\\fR follows \\fBin3\\fR
.RE
""";
pin in float in0;
pin in float in1;
pin in float in2;
pin in float in3;
function _;
license "GPL";
;;
FUNCTION(_)
{
    if(sel1) {
        if(sel0) out = in3;
        else out = in2;
    } else {
        if(sel0) out = in1;
        else out = in0;
    }

return 0;
}
