|
Текст подпрограммы и версий 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.