final int size = value.size();
if (size == 1) {
return RDouble.RDoubleFactory.getScalar(op(ast, value.getDouble(0)), value.dimensions(), value.names(), value.attributesRef());
} else if (size > 0) {
if (profile == null) {
profile = new ViewProfile();
return ProfilingView.ViewProfile.profile(createView(ast, value, size), profile);
} else {
if (profile.shouldBeLazy()) {
return replaceAndExecuteLazy(value);
} else {