Текст подпрограммы и версий avz1r_c.zip avz1d_c.zip avz1c_c.zip |
Тексты тестовых примеров tavz1r_c.zip tavz1d_c.zip tavz1c_c.zip |
Вычисление суммы абсолютных значений компонент вектора или заданного подмножества компонент этого вектора.
Для заданного вектора V длины N вычисляется сумма абсолютных значений всех его компонент. Кроме того, может быть вычислена сумма абсолютных значений тех его компонент, индексы которых последовательно отстают друг от друга на величину istep.
real avz1r_c (real *v, integer *n, integer *istep)
Параметры
v - | вещественный одномерный массив длины n, в котором задаются компоненты вектора; |
n - | число компонент вектора (тип: целый); |
istep - | заданный шаг изменения индексов тех компонент, сумма абсолютных значений которых вычисляется (тип: целый). |
Версии
avz1d_c - | вычисление суммы абсолютных значений компонент вектора, заданного с удвоенной точностью, или заданного подмножества компонент этого вектора. |
avz1c_c - | вычисление суммы абсолютных значений компонент комплексного вектора или заданного подмножества компонент этого вектора. |
Вызываемые подпрограммы: нет
Замечания по использованию
В функции avz1d_c вектор V должен иметь тип double. В функции avz1c_c вектор V должен иметь тип complex. |
int main(void) { /* Initialized data */ static float v[10] = { 1.f,2.f,3.f,4.f,5.f,6.f,7.f,8.f,9.f,10.f }; /* Local variables */ extern float avz1r_c(float *, int *, int *); static int n; static float y; static int istep; static float y1; n = 10; istep = 1; y = (float)avz1r_c(v, &n, &istep); n = 5; istep = 2; y1 = (float)avz1r_c(&v[1], &n, &istep); printf("\n %16.7e \n", y); printf("\n %16.7e \n", y1); return 0; } /* main */ y = avz1r (v, n, istep) Результат: y = 55.