/** * Enumerates in ascending order all integers {@code 0 <= i < to}. */ public static int[] range(int to) { return range(0, to); }
@Override public boolean isTimeEstimatesComplete() { boolean isComplete = true; for (OperatorContext operatorContext : operatorContexts.values()) { if (operatorContext.getOperator().isExecutionOperator() && operatorContext.timeEstimate == null && RheemArrays.anyMatch(operatorContext.getOutputCardinalities(), Objects::nonNull)) { this.logger.warn("No TimeEstimate for {}.", operatorContext); isComplete = false; } } if (this.getBase() != null) { isComplete &= this.getBase().isTimeEstimatesComplete(); } for (LoopContext loopContext : this.loopContexts.values()) { for (OptimizationContext iterationContext : loopContext.getIterationContexts()) { isComplete &= iterationContext.isTimeEstimatesComplete(); } } return isComplete; }