Lines Matching refs:dimension
81 for (int dimension{0}; dimension < rank; ++dimension) { in CreateShape() local
82 shape.emplace_back(GetExtent(base, dimension)); in CreateShape()
344 ExtentExpr GetRawLowerBound(const NamedEntity &base, int dimension) { in GetRawLowerBound() argument
345 return GetLowerBoundHelper<ExtentExpr, false>{dimension, nullptr}(base); in GetRawLowerBound()
349 FoldingContext &context, const NamedEntity &base, int dimension) { in GetRawLowerBound() argument
351 GetLowerBoundHelper<ExtentExpr, false>{dimension, &context}(base)); in GetRawLowerBound()
354 MaybeExtentExpr GetLBOUND(const NamedEntity &base, int dimension) { in GetLBOUND() argument
355 return GetLowerBoundHelper<MaybeExtentExpr, true>{dimension, nullptr}(base); in GetLBOUND()
359 FoldingContext &context, const NamedEntity &base, int dimension) { in GetLBOUND() argument
361 GetLowerBoundHelper<MaybeExtentExpr, true>{dimension, &context}(base)); in GetLBOUND()
432 MaybeExtentExpr GetExtent(const NamedEntity &base, int dimension) { in GetExtent() argument
433 CHECK(dimension >= 0); in GetExtent()
438 if (semantics::IsDescriptor(symbol) && dimension < *assoc->rank()) { in GetExtent()
440 NamedEntity{base}, DescriptorInquiry::Field::Extent, dimension}}; in GetExtent()
443 if (dimension < static_cast<int>(shape->size())) { in GetExtent()
444 return std::move(shape->at(dimension)); in GetExtent()
451 if (dimension < static_cast<int>(shape->size())) { in GetExtent()
452 return std::move(shape->at(dimension)); in GetExtent()
458 if (j++ == dimension) { in GetExtent()
465 DescriptorInquiry::Field::Extent, dimension}}; in GetExtent()
477 FoldingContext &context, const NamedEntity &base, int dimension) { in GetExtent() argument
478 return Fold(context, GetExtent(base, dimension)); in GetExtent()
482 const Subscript &subscript, const NamedEntity &base, int dimension) { in GetExtent() argument
488 upper = GetUBOUND(base, dimension); in GetExtent()
492 lower = GetLBOUND(base, dimension); in GetExtent()
511 const NamedEntity &base, int dimension) { in GetExtent() argument
512 return Fold(context, GetExtent(subscript, base, dimension)); in GetExtent()
533 MaybeExtentExpr GetRawUpperBound(const NamedEntity &base, int dimension) { in GetRawUpperBound() argument
537 if (dimension < rank) { in GetRawUpperBound()
538 const auto &bound{details->shape()[dimension].ubound().GetExplicit()}; in GetRawUpperBound()
541 } else if (details->IsAssumedSize() && dimension + 1 == symbol.Rank()) { in GetRawUpperBound()
545 GetRawLowerBound(base, dimension), GetExtent(base, dimension)); in GetRawUpperBound()
551 if (dimension < static_cast<int>(shape->size())) { in GetRawUpperBound()
553 GetRawLowerBound(base, dimension), std::move(shape->at(dimension))); in GetRawUpperBound()
561 FoldingContext &context, const NamedEntity &base, int dimension) { in GetRawUpperBound() argument
562 return Fold(context, GetRawUpperBound(base, dimension)); in GetRawUpperBound()
584 FoldingContext *context, const NamedEntity &base, int dimension) { in GetUBOUND() argument
588 if (dimension < rank) { in GetUBOUND()
589 const semantics::ShapeSpec &shapeSpec{details->shape()[dimension]}; in GetUBOUND()
592 } else if (details->IsAssumedSize() && dimension + 1 == symbol.Rank()) { in GetUBOUND()
594 } else if (auto lb{GetLBOUND(base, dimension)}) { in GetUBOUND()
595 return ComputeUpperBound(std::move(*lb), GetExtent(base, dimension)); in GetUBOUND()
601 if (dimension < static_cast<int>(shape->size())) { in GetUBOUND()
602 if (auto lb{GetLBOUND(base, dimension)}) { in GetUBOUND()
604 std::move(*lb), std::move(shape->at(dimension))); in GetUBOUND()
612 MaybeExtentExpr GetUBOUND(const NamedEntity &base, int dimension) { in GetUBOUND() argument
613 return GetUBOUND(nullptr, base, dimension); in GetUBOUND()
617 FoldingContext &context, const NamedEntity &base, int dimension) { in GetUBOUND() argument
618 return Fold(context, GetUBOUND(&context, base, dimension)); in GetUBOUND()
731 int dimension{0}; in operator ()() local
735 shape.emplace_back(GetExtent(ss, base, dimension)); in operator ()()
737 ++dimension; in operator ()()
753 int dimension{0}; in operator ()() local
756 shape.emplace_back(GetExtent(ss, base, dimension)); in operator ()()
758 ++dimension; in operator ()()