Это серьезное упущение математиков! Они мне сильно жизнь усложнили!
Вопрос у меня возник в связи с тем, что я не знаю, как назвать функции.
Например, очень часто студентов просят написать программу, которая вычисляет сумму элементов выше или ниже главной диагонали или побочной (не главной) диагонали. В общем случае в С++ сумма элементов контейнера вычисляется с помощью стандартного алгоритма
std::accumulate. Само название этого адгоритма довольно длинное. Возникает вопрос: как назвать функцию, которая подсичтывает сумму элементов треугольной матрицы. Если приписывать слово к идентификатору
accumulate, то получится еще более длинный идентификатор.
У меня была идея просто поместить имена, аналогичные стандартным алгоритмам в пространство имен. например, для треугольных матриц объявить пространстов имен
triangle_matrix и в него запихнуть подобные функции.
Однако я не знаю, а как назвать пространство имен также для треугольных матриц, но относительно побочной (не главной) диагонали. Заниматься самодеятельностью, выдумывая термин для таких матриц, как-то не хотелось. Я думал, что такие матрицы должны бы были уже получить название. Но, увы, такого названия нет. Поэтому возникает проблема с наименованием функций. А таких функций только для подсчета суммы элементов может быть четыре: 1) сумма элементов верхней треугольной матрицы; 2) сумма элементов нижней ттреугольной матрицы; 3) сумма элементов " верхней относительно побочной диагонали треугольной" матрицы; 4) сумма элементов "нижней относительно побочной диагонали треугольной" матрицы.
Я взял два названия в кавычки, так как таких названий не существует.
Сейчас, когда писал, пришла в голову такая идея. Назвать пространство имен просто
triangle_matrix, а функции что-то вроде
upper_left_accumulate (верхняя относительно побочной диагонали треугольная матрица),
upper_right_accumulate (верхняя треугольная матрица)
low_left_accumulate (нижняя треугольная матрица) b
low_right_accumulate (нижняя относительно побочной диагонали треугольная матрица).
Можно даже убрать пространство имен, а оставить лишь названия функций.