Ada 程式設計/庫/Ada.Numerics.Generic Complex Types
外觀
此語言功能從 Ada 95 開始可用。
Ada.Numerics.Generic_Complex_Types 是 預定義語言環境 自 Ada 95 以來的一部分。
該 泛型 包 Ada.Numerics.Generic_Complex_Types 為定義的 浮點型別 定義了複數型別。由於是泛型,它不僅可以用於預定義的浮點型別,也可以用於任何使用者定義的浮點型別。
在 Ada 程式設計/數學計算 中有一個廣泛的用法指南。這裡摘錄了相關內容
withAda.Numerics.Generic_Complex_Types;procedureNumeric_7istypeValue_Typeisdigits12range-999_999_999_999.0e999 .. 999_999_999_999.0e999;packageComplex_TypesisnewAda.Numerics.Generic_Complex_Types ( Value_Type);usetypeComplex_Types.Complex;
-- Standard Ada library specification -- Copyright (c) 2003-2018 Maxim Reznik <reznikmm@gmail.com> -- Copyright (c) 2004-2016 AXE Consultants -- Copyright (c) 2004, 2005, 2006 Ada-Europe -- Copyright (c) 2000 The MITRE Corporation, Inc. -- Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc. -- SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual -- -------------------------------------------------------------------------generictypeRealisdigits<>;packageAda.Numerics.Generic_Complex_TypesispragmaPure (Generic_Complex_Types);typeComplexisrecordRe, Im : Real'Base;endrecord;typeImaginaryisprivate;pragmaPreelaborable_Initialization (Imaginary); i :constantImaginary; j :constantImaginary;functionRe (X : Complex)returnReal'Base;functionIm (X : Complex)returnReal'Base;functionIm (X : Imaginary)returnReal'Base;procedureSet_Re (X :inoutComplex; Re :inReal'Base);procedureSet_Im (X :inoutComplex; Im :inReal'Base);procedureSet_Im (X :outImaginary; Im :inReal'Base);functionCompose_From_Cartesian (Re, Im : Real'Base)returnComplex;functionCompose_From_Cartesian (Re : Real'Base)returnComplex;functionCompose_From_Cartesian (Im : Imaginary)returnComplex;functionModulus (X : Complex)returnReal'Base;function"abs" (Right : Complex)returnReal'BaserenamesModulus;functionArgument (X : Complex)returnReal'Base;functionArgument (X : Complex; Cycle : Real'Base)returnReal'Base;functionCompose_From_Polar (Modulus, Argument : Real'Base)returnComplex;functionCompose_From_Polar (Modulus, Argument, Cycle : Real'Base)returnComplex;function"+" (Right : Complex)returnComplex;function"-" (Right : Complex)returnComplex;functionConjugate (X : Complex)returnComplex;function"+" (Left, Right : Complex)returnComplex;function"-" (Left, Right : Complex)returnComplex;function"*" (Left, Right : Complex)returnComplex;function"/" (Left, Right : Complex)returnComplex;function"**" (Left : Complex; Right : Integer)returnComplex;function"+" (Right : Imaginary)returnImaginary;function"-" (Right : Imaginary)returnImaginary;functionConjugate (X : Imaginary)returnImaginaryrenames"-";function"abs" (Right : Imaginary)returnReal'Base;function"+" (Left, Right : Imaginary)returnImaginary;function"-" (Left, Right : Imaginary)returnImaginary;function"*" (Left, Right : Imaginary)returnReal'Base;function"/" (Left, Right : Imaginary)returnReal'Base;function"**" (Left : Imaginary; Right : Integer)returnComplex;function"<" (Left, Right : Imaginary)returnBoolean;function"<=" (Left, Right : Imaginary)returnBoolean;function">" (Left, Right : Imaginary)returnBoolean;function">=" (Left, Right : Imaginary)returnBoolean;function"+" (Left : Complex; Right : Real'Base)returnComplex;function"+" (Left : Real'Base; Right : Complex)returnComplex;function"-" (Left : Complex; Right : Real'Base)returnComplex;function"-" (Left : Real'Base; Right : Complex)returnComplex;function"*" (Left : Complex; Right : Real'Base)returnComplex;function"*" (Left : Real'Base; Right : Complex)returnComplex;function"/" (Left : Complex; Right : Real'Base)returnComplex;function"/" (Left : Real'Base; Right : Complex)returnComplex;function"+" (Left : Complex; Right : Imaginary)returnComplex;function"+" (Left : Imaginary; Right : Complex)returnComplex;function"-" (Left : Complex; Right : Imaginary)returnComplex;function"-" (Left : Imaginary; Right : Complex)returnComplex;function"*" (Left : Complex; Right : Imaginary)returnComplex;function"*" (Left : Imaginary; Right : Complex)returnComplex;function"/" (Left : Complex; Right : Imaginary)returnComplex;function"/" (Left : Imaginary; Right : Complex)returnComplex;function"+" (Left : Imaginary; Right : Real'Base)returnComplex;function"+" (Left : Real'Base; Right : Imaginary)returnComplex;function"-" (Left : Imaginary; Right : Real'Base)returnComplex;function"-" (Left : Real'Base; Right : Imaginary)returnComplex;function"*" (Left : Imaginary; Right : Real'Base)returnImaginary;function"*" (Left : Real'Base; Right : Imaginary)returnImaginary;function"/" (Left : Imaginary; Right : Real'Base)returnImaginary;function"/" (Left : Real'Base; Right : Imaginary)returnImaginary;privatetypeImaginaryisnewReal'Base; i :constantImaginary := 1.0; j :constantImaginary := 1.0;endAda.Numerics.Generic_Complex_Types;
外部示例
[編輯原始碼]- 在以下位置搜尋 示例
Ada.Numerics.Generic_Complex_Types:Rosetta Code, GitHub (gists), 任何 Alire 包 或 本華夏公益教科書。 - 在以下位置搜尋與
Ada.Numerics.Generic_Complex_Types相關的 帖子:Stack Overflow, comp.lang.ada 或 任何與 Ada 相關的頁面。
FSF GNAT
- 規範:a-ngcoty.ads
- 主體:a-ngcoty.adb
drake
