["function (params, inputs, indices, cached = NULL) ","{","    iind <- indices[, 1]","    jind <- indices[, 2]","    if (is.null(cached)) ","        cachedIsNull = TRUE","    else cachedIsNull = FALSE","    if (cachedIsNull) {","        cached = list()","        cached$dp <- abs(inputs$phase[iind] - inputs$phase[jind])","        cached$dw <- abs(inputs$logwavelength[iind] - inputs$logwavelength[jind])","    }","    dp <- cached$dp","    dw <- cached$dw","    c1 <- params[\"sigma2\"] * Matern(dp, range = params[\"rhop\"], ","        nu = inputs$nu) * Matern(dw, range = params[\"rhow\"], ","        nu = inputs$nu)","    c2 <- params[\"tau2\"] * (inputs$phaseindex[iind] == inputs$phaseindex[jind])","    c3 <- (iind == jind) * inputs$fluxerror[iind]^2","    if (cachedIsNull) {","        return(list(c1 + c2 + c3, cached))","    }","    else return(c1 + c2 + c3)","}"]
