|
Программирование >> Операторы преобразования типа
О Возвращает результат сравнения двух комплексных чисел или комплексного числа со скалярным значением. О Параметр сравнение - один из следующих операторов: operator == operator != О Если при вызове оператора передается скалярное значение типа элемента, оно интерпретируется как вещественная часть, а мнимая часть инициализируется значением по умолчанию для своего типа (О для базовых типов данных). О Обратите внимание: операторы <, <=, > и >= не поддерживаются. Трансцендентные функции complex pow (const complex base. 1nt exp) complex pow (const conplex base, const T& exp) complex pow (const complex base, const complex exp) complex pow (const T& base, const complex exp) О Все формы возвращают результат комплексного возведения base в степень expj вычисляемый по форму.яе: exp(eXjD*log(£>ase)) О Разрывы направлены вдоль отрицательной вещественной полуоси. О Значение, возвращаемое для pow(0,0), определяется реализацией. complex exp (const complex cmplx) Возвращает результат комплексного возведения числа е в степень стпрЬс. complex sqrt (const complex cmplx) О Возвращает комплексный квадратный корень из стрЪс, находящийся в правой полуплоскости. о Если аргумент является отрицательным вещественным числом, то возвращаемое значение находится на положительной мнимой полуоси. О Разрывы направлены вдоль отрицательной вещественной полуоси, complex log (const complex cmplx) О Возвращает комплексный натуральный логарифм cmplx, О Если cmplx является отрицательным вещественным числом, то imag(log(cmpb:))=*7i. О Разрывы направлены вдоль отрицательной вещественной полуоси. complex loglO (const complex cmplx) О Возвращает комплексный десятичный логарифм cmplx. О Эквивалент: log(cmp/x)/log(10) О Разрывы направлены вдоль отрицательной вещественной полуоси. complex sin (const complex cwplx) complex cos (const complex cmplx) complex tan (const complex, cwplx) complex s1nh (const complex cwplx) complex cosh (const conplexh cwplx) complex tanh (const complex cwplx) О Функции возвращают результаты соответствующих комплексных тригонометрических операций с cmplx. Массивы значений В стандартную библиотеку С++ входит класс valarray, предназначенный для обработки массивов числовых значений. Массив значений представляет математическую концепцию линейной последовательности значений. Он имеет всего одно измерение, но специальные правила вычисления индексов и мощные средства выделения подмножеств позволяют имитировать большую размерность. Таким образом, массив значений может использоваться в качестве эффективной базы для операций с векторами и матрицами, а также для обработки математических систем полиномиальных уравнений. Нетривиальные оптимизации в классах массивов значений обеспечивают хорошее быстродействие при обработке данных. Впрочем, сейчас еще нельзя сказать, насколько важным этот компонент стандартной библиотеки С++ останется в будущем, потому что сзоцествуют дрзпе интересные разработки, которые показывают еще лучшие результаты. Один из самых интересных примеров - система Blitz. Если вы шггересуетесь обработкой числовых данных, обязательно познакомьтесь с ней. За подробностями обращайтесь по адресу http: monet.uwater1oo.ca/blitz/. Качество проектирования классов массивов значений оставляет желать лучшего. В сущности, никто даже не пытался проверить работоспособность итоговой спецификации, поскольку никто не чзшствовал себя ответственным за эти классы. Люди, включившие массивы значений в стандартную библиотеку С++, покинули комитет по стандартизации задолго до написания стандарта. Например, для работы с массивами значений часто требуются неудобные и долгие преобразования типов (см. с. 532). Знакомство с массивами значений Массив значений представляет собой одномерный массив с последовательной нумерацией элементов, начиная с 0. Массивы значений предоставляют средства для выполнения вычислений со всеми элементами (или с их подмножеством) одного или нескольких массивов значений. Например, в следующей команде а, Ь, с, X и Z могут быть массивами, содержащими сотни числовых значений: 2 = а*х*х + Ь*х + с К преимуществам такого синтаксиса следует отнести простоту записи. Кроме того, массивы значений обеспечивают хорошую эффективность обработки данных благодаря оптимизациям, предотвращающим создание временных объектов во время выполнения команды. Специальные интерфейсы и вспомогательные классы предоставляют средства для ограничения обработки подмножеством элементов массива значений и для имитации многомерных массивов. В этом отношении массивы значений также упрощают реализацию классов векторов и матриц. Стандарт гарантирует, что доступ к массивам значений является безальтернативным. Другими словами, обращение к любому значению неконстантного массива значений производится по уникальному пути. Такие гарантии помогают оптимизировать операции с массивами, поскольку компилятору не приходится учитывать возможность обращения к данным по другому пути. Заголовочный файл Массивы значений объявляются в заголовочном файле <valarray>: Iinclude <valarray> В частности, <valarray> содержит объявления следующих классов: namespace std { tempiate<class T> class valarray; Числовой массив типа Т class slice: Срез массива значений template<class Т> class sl1ce array; class gslice: Обобщенный срез template<class Т> class gsl1ce array; template<class T> class mask array: template<class T> class indirect array; Эти классы имеют следующий смысл. О Valarray - основной класс для работы с массивами числовых значений. О Классы slice и gslice предназначены для определения BLAS-совместимых срезов в виде подмножества элементов массива значений. О Внутренние вспомогательные классы slice array, gslice anay, mask anay и indirect, array предназначены для хранения временных данных. Непосредственное использование этих классов в программном интерфейсе невозможно, они создаются автоматически некоторыми операциями с массивами значений. Все классы определяются как шаблоны, параметризованные по типу элементов. В принципе элементы могут относиться к произвольному типу данных, но по природе природой массивов значений это должен быть числовой тип. Библиотека BLAS (Basic Linear Algebra Subprograms) содержит ргнструментарргй для выполнения базовых операций линейной алгебры, включая умножение матриц, решение систем уравнений и простые действия с векторами.
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |