Текст подпрограммы и версий av15r_c.zip av15d_c.zip av15c_c.zip |
Тексты тестовых примеров tav15r_c.zip tav15d_c.zip tav15c_c.zip |
Умножение вектора на скаляр.
Подпрограмма av15r_c выполняет умножение вектора на скаляр по формуле:
AX = ( AX1, AX2, ... , AXn )
Вектор X не обязательно должен занимать последовательные слова памяти машины и может располагаться в памяти с некоторыми постоянными интервалами, которые называются параметром приращения. Этот параметр может быть меньше нуля, если обработка компонент вектора должна проводиться в обратном порядке. В случае, когда параметры приращения равны 1, используется развернутый цикл с шагом 5.
int av15r_c (integer *n, real *sa, real *sx, integer *incx, integer *ierr)
Параметры
n - | размерность вектора (тип: целый); |
sa - | скалярный множитель (тип: вещественный); |
sx - | вещественный одномерный массив длины n, содержащий заданный вектор; на выходе содержит результирующий вектор; |
incx - | параметр приращения, задающий расположение вектора в массиве sx (тип: целый); |
ierr - | целая переменная, указывающая характер ошибки; при этом: |
ierr=65 - | когда n ≤ 0 . |
Версии
av15d_c - | вычисление произведения вектора, заданного с двойной точностью, на скаляр. |
av15c_c - | вычисление произведения комплексного вектора на скаляр. |
Вызываемые подпрограммы
utav10_c - | подпрограмма выдачи диагностических сообщений при работе подпрограмм av15r_c и av15c_c. |
utav11_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы av15d_c. |
Замечания по использованию
В подпрограмме av15d_c одномерный массив обозначен dx и имеет тип double. В подпрограмме av15c_c одномерный массив обозначен cx и имеет тип complex. |
int main(void) { /* Initialized data */ static float sx[3] = { 1.f,1.f,1.f }; /* Local variables */ extern int av15r_c(int *, float *, float *, int *, int *); static int incx, ierr, n; static float sa; n = 3; sa = 2.f; incx = 1; ierr = 0; av15r_c(&n, &sa, sx, &incx, &ierr); printf("\n %10.4e %10.4e %10.4e \n", sx[0], sx[1], sx[2]); printf("\n %5i \n", ierr); return 0; } /* main */ Результаты: sx = (2.0, 2.0, 2.0) , ierr = 0