NaN

NaNNot a Number、非数、ナン)は、コンピュータにおいて、主に浮動小数点演算の結果として、不正なオペランドを与えられたために生じた結果を表す値またはシンボルである。NaNの体系的仕様は、無限大の表現などと共に1985年の IEEE 754 浮動小数点規格で標準が与えられている。

NaNには quiet NaN と signaling NaN の2種類がある。quiet NaN は不正な操作や不正な値で生じる誤りを伝播させるのに使用され、signaling NaN は数値計算と記号計算英語版の混合や基本的な浮動小数点演算への他の拡張といった高度な機能のサポートに使える。例えば結果が実数の範囲内でないゼロ除算において、ゼロ以外のゼロ除算は無限大だが、ゼロのゼロ除算は NaN である。負数の平方根虚数となるため、浮動小数点数としては表現できず、NaN で表現される。他に、正負の無限大の両方が絡んだために、どちらの無限大ともできないような計算の結果も NaN である。また、NaN は計算上必要な値が得られていない場合にも使われることがある[1][2]

類似用語としてNA(Not Available)や n/a があるが、異なる概念なので注意を要する。(後述NA参照)

浮動小数点数の NaN

浮動小数点演算においては、NaNと無限大は別の概念であるが、どちらも浮動小数点数としての表現も特殊であり、それを使った演算も特殊である(文献によっては、それら両方を含む広義の「非数」という表現が見られることもあるが、混同のおそれが無い場合以外は避けたほうがよい)。不正な演算という概念と、算術オーバーフロー(無限大を結果とする場合もある)や算術アンダーフロー(非正規化数か、ゼロとなる)は異なる。

IEEE 754では、NaNの表現について、指数部は全て1とし(これは無限大と同じ)、無限大の場合は仮数部の全てを0とするのに対し、NaNは全0以外の任意のビット列としている。他に、先頭の符号ビットで正負の区別がある。また、NaNの種別としてquiet NaN (qNaN) とsignaling NaNsNaN)があり、例外を投げる場合について違いがある。

仮数部のビット列について任意としているため複数の表現があり得るが、それらが必ずしも区別して扱われるとは限らない。qNaNとsNaNの表現について規格の以前の版では具体的に決まっていなかったなど煩雑なため、詳細は#エンコードの節を参照。

IEEE 754 の単精度(32ビット)での NaN をビット列として表現すると s111 1111 1xxx xxxx xxxx xxxx xxxx xxxx となり、ここで s は正負の符号(多くのアプリケーションでは無視する)、x は特殊ペイロード(多くのアプリケーションでは無視する)である。

大小比較以外の浮動小数点数操作は一般に quiet NaN をそのまま伝播する。signaling NaN に対する浮動小数点数操作は不正例外を発生し、デフォルトの例外処理ではqNaNをオペランドとしたときと同様に演算結果としてqNaNを生成するだけである。

NaNとの大小比較では、自分自身と比較した場合でも「大小不明な結果」を返す。比較には signaling と non-signaling があり、signaling 版では NaN との比較を行うと不正例外を発生する。等号および不等号で比較する場合は常に non-signaling であり、x が quiet NaN なら x = x は偽 (false) を返す。他の一般的な大小比較は全て signaling であり、オペランドとして NaN を渡されると不正例外を発生するが、規格ではそれらの non-signaling 版も提供することになっている。isNaN(x) は渡された値がNaNかどうかを判定する関数であり、x が signaling NaN であっても例外を発生しない。

quiet NaN が演算を通して伝播していくため、計算途中で何度もチェックを入れる必要はなく、最終的に得られた値を調べればよい。ただし、言語や関数によっては NaN を渡されてもそれが計算結果に影響しない場合に黙って普通の浮動小数点数値を返すことがある。例えばどんな数でも0乗すれば1になるので、NaN^0 は 1 と定義することもできる。そのため一般に最終的な値を得るまでの過程で NaN が入り込んでいたかを示す INVALID フラグを調べる必要がある[3](詳しくは後述の関数定義における NaN節を参照)。

IEEE 754-2008 の6.2節に、引数のうち大きい方あるいは小さい方を返す maxnumminnum という関数があるが、これらは引数の一方が NaN の場合は常にもう一方の引数を返す。

同様のコンセプトは GNU OctaveMATLAB のNaNツールボックスに実装されている[4]。NaNツールボックスに含まれる統計関数群(平均、標準偏差などの関数)は、NaNを統計データがないことを示すものとみなし、単に NaN を無視して伝播させない。

NaN を返す演算

以下の処理で NaN が生成される可能性がある[5]

  • 唯一の引数に NaN を指定された数学関数
  • 不定形英語版
    • 次のような除算: 0/0、±∞/±∞
    • 次のような乗算: 0×±∞、±∞×0
    • 次のような加算(および等価な減算): ∞ + (−∞)、(−∞) + ∞
    • 標準には冪乗が2種類定義されている。
      • pow 関数と冪指数が整数である pown 関数は、00、1、∞0 を 1 と定義している。
      • powr 関数は上記3つの不定形を不正演算と定義しており、NaN を返す。
  • 結果が虚数となるような演算(以下は一部)
    • 負数の平方根
    • 負数の対数
    • -1未満の値や+1より大きい値の逆三角関数

必要な値がないとき、明示的に変数に NaN を代入しておくことがある。IEEE 754 制定以前、未定義値を表すのに特別な値(例えば −99999999)を使うことが多かったが、そういった値が常に想定通りに扱われるとは限らなかった[1]

上記の全ケースで常に NaN が生成されるとは限らない。マスクされていない例外やトラップを発生できる場合、NaNを生成する代わりにトラップを発生させることもある[6]。引数が quiet NaN で signaling NaN ではない場合、例外の発生する条件が成立しておらず quiet NaN を結果として返す。明示的に代入する場合は signaling NaN であっても例外は発生しない。

quiet NaN

quiet NaN あるいは qNaN は演算過程で伝播していく以外に何も例外などを発生させない。ただし、NaNを出力できない処理の場合は別である。たとえば、フォーマットの変換やある種の比較操作である(NaNが入力されることを想定していない操作)。

signaling NaN

signaling NaN あるいは sNaN は特殊なNaNであり、多くの操作に入力として用いられたときに不正例外を発生する(通常、オペレーティングシステム例外処理が呼び出される)。その後、sNaN は qNaN に変化し、伝播していく。これは IEEE 754 で導入された。この機能の使い方はいくつかある。

  • 未使用メモリに signaling NaN の値を入れておくと、初期化前にそのデータが使われたときに不正例外が発生するようにできる。
  • sNaN をもっと複雑なオブジェクトのプレースホルダーとして使うこともできる。

これらに遭遇するとトラップハンドラは sNaN をデコードして計算結果へのインデックスを返すこともできる。実際にはこの手法は非常に複雑である。NaN の正負の符号ビットの単純な操作(たとえば絶対値を返す操作)における扱いは通常の算術操作とは異なる。トラップ処理は規格上は要求されていない。このような問題を扱う他の移植性の高い方法がいくつか存在する。

関数定義における NaN

数値関数が入力として NaN を受け取ったとき、どう処理すべきかについては様々な意見がある。1つの見方は、NaN はエラーを示すものとして常に出力に伝播させなければならないというものである。別の見方として、その関数に複数の引数があり、NaN でない引数だけで出力値が決定される場合、その値を返すべきだという考え方もある。IEEE 754 は主に後者の立場で策定されている。例えば、hypot(±∞, qNaN) と hypot(qNaN, ±∞) は +∞ を返す。

例えば冪乗関数 pow(x,y) = x ** y という関数を考えてみよう。00、∞0、1 といった式は極限を考えると(∞ × 0 などと同様)不定形英語版だが、0の0乗は1と定義すべきだという意見もある。

引数が未定義なら結果も未定義とする場合、pow(1,qNaN) は qNaN を出力すべきである。しかし、一般的な数学ライブラリでは pow(1,y) は任意の実数 y について常に 1 を返す。これは y が無限大であっても同様である。同様に pow(x,0) は x が 0 や無限大であっても 1 を返す。本来不定形であるはずなのに 1 を返す論理的根拠は、ロピタルの定理である。IEEE 754-2008 では、pow(1,qNaN)pow(qNaN,0) はどちらも 1 を返すべきだとされている。

冪乗関数がより厳密な解釈に従うべきだという立場を考慮し、IEEE 754-2008 では他に2つの冪乗関数を定義している。pown(x, n) は冪指数として整数しか指定できない。powr(x, y) は引数のいずれかが NaN の場合や計算結果が不定形になる場合、常に NaN を返す。

整数の NaN

固定ビット幅の整数フォーマットは明確に不正データを示す方法がない。

Perl の BigInt パッケージは正常な整数でないものを表す文字列として "NaN" を使用する。

 >perl -mMath::BigInt -e "print Math::BigInt->new('foo')" 
 NaN 

テキスト表現

各種プログラミング言語やライブラリの入出力における、リテラルなどにおけるNaNのテキスト表現はまちまちである。以下に例を挙げる。

 nan
 NaN
 NaN%
 NAN
 NaNQ
 NaNS
 qNaN
 sNaN
 1.#SNAN
 1.#QNAN
 +nan.0
 -nan.0
 -1.#IND

符号と診断用の情報(ペイロード)を含む場合の例。

 -NaN
  NaN12345
 -sNaN12300
 -NaN(s1234)

これら以外の場合もある。

エンコード

IEEE 754 の浮動小数点数フォーマットにおけるNaNの表現(エンコード)の詳細について説明する。符号ビットはどちらでもよい。指数部は全て1であり(無限大と同じ)、仮数部はゼロでない値(無限大ではゼロ)である。IEEE 754-1985 では signaling NaN と quiet NaN を区別する方法は標準化されていなかった。一般に仮数部の最上位ビットで signaling か quiet かを判定する実装が多かったが、その具体的な 1 と 0 の意味付けは逆の場合があった。

  • 多くのプロセッサ(インテル/AMDx86-32/x86-64ファミリ、モトローラMC68000ファミリ、AIM PowerPCファミリ、Sun SPARCファミリ)では、0でないとき quiet、0のとき signaling と解釈される。したがって、そのビットは 'is_quiet' フラグと言える。
  • PA-RISCMIPSの場合、0のとき quiet、0でないとき signaling と解釈される。したがって、そのビットは 'is_signaling' フラグと言える。

IEEE 754-2008 では、このビットを仮数部の最上位ビットとし解釈についても標準化するよう、正式な勧告を追加している。

  • 二進フォーマットの場合、'is_quiet' フラグとすることを標準とする。すなわち、0でないとき quiet、0のとき signaling である。
  • IEEE 754-2008では十進フォーマットも定めたため、その場合のNaNについても定められた。符号ビットに続く5ビットのフィールドを全て1にセットすることでNaNを表す。そして、その直後に 'is_signaling' フラグとなるビットがある。当該ビットが0のとき quiet、1のとき signaling である。

ビットを 0 にして quiet と signaling を逆にしようとした場合、無限大にならないよう別のビットも操作する必要があるかもしれないことに注意が必要である。

(qNaN/sNaNであることを示すための以上のビットを除くと)残りのビットについては標準は特に無い(無限大を表す仮数部が全て0の場合を除く)。これをNaNの「ペイロード」と呼び、デバッグのために、出力がqNaNとなった操作で1つ目のqNaNの引数のペイロードをそのまま伝播させることを推奨している。

NA

紛らわしい言葉として、NA(Not Availableの略、N/Aとも表記される)がある。「数表のコラムにデータが存在しない場合」に使われ『欠損値』(missing value)と訳される。 殊に統計計算の分野、R言語など統計解析ソフトウェアで用いられる。R言語では、NaN==NaNの結果が偽なのに対し、NA==NAの結果はNAである。

脚注

  1. ^ a b Bowman, Kenneth (2006) An introduction to programming with IDL: Interactive Data Language. Academic Press. p. 26 ISBN 0-12-088559-X
  2. ^ William H. Press, Saul A. Teukolsky, William T. Vetterling (2007) Numerical recipes: the art of scientific computing.p. 34 Cambridge University Press, ISBN 0-521-88068-8
  3. ^ William Kahan (1 October 1997). “Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic”. 2012年3月31日閲覧。
  4. ^ NaN 'toolbox'
  5. ^ David Goldberg. “What Every Computer Scientist Should Know About Floating-Point”. 2012年3月31日閲覧。
  6. ^ Intel 64 and IA-32 Architectures Software Developer's Manual Volume 1: Basic Architecture”. pp. 118–125, 266–267, 334–335 (2008年4月). 2012年3月31日閲覧。

外部リンク

Read other articles:

?Вусоногі «Молюски» з книги Ернста Геккель Мистецькі форми природи (1904). У центрі - доросла самка вусоногого ракоподібного Sacculina carcini, що паразитує на крабові Carcinus maenas Chthamalus stellatus Біологічна класифікація Царство: Тварини Тип: Arthropoda Підтип: Crustacea Клас: Maxillopoda Підклас: Thecostraca І...

 

Pakistani military school This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Military College of Signals – news · newspapers · books · scholar · JSTOR (December 2018) Military College of SignalsMain building of MCSMottoتیز و یقینیTypeMilitary SchoolEstablished1947RectorLt Gen (Retd.) Javed Ma...

 

National anthem of Belize This article is about the national anthem of Belize. For the United States national anthem, see The Star-Spangled Banner. Land of the FreeNational anthem of BelizeLyricsSamuel Alfred Haynes, 1963MusicSelwyn Walford Young, 1963Adopted1981Audio sampleU.S. Navy Band instrumental versionfilehelp Land of the Free is the national anthem of Belize. The words were written by Samuel Alfred Haynes and the music by Selwyn Walford Young in 1963. It was officially adopted in 1981...

American basketball player Landry ShametShamet with the Brooklyn Nets in 2021No. 20 – Washington WizardsPositionShooting guardLeagueNBAPersonal informationBorn (1997-03-13) March 13, 1997 (age 26)Kansas City, Missouri, U.S.Listed height6 ft 4 in (1.93 m)Listed weight190 lb (86 kg)Career informationHigh schoolPark Hill (Kansas City, Missouri)CollegeWichita State (2015–2018)NBA draft2018: 1st round, 26th overall pickSelected by the Philadelphia 76ersPla...

 

Dr. (H.C.) Ir.Burhanuddin AbdullahM.A.Gubernur Bank Indonesia ke-12Masa jabatan17 Mei 2003 – 17 Mei 2008PresidenMegawati SoekarnoputriSusilo Bambang YudhoyonoPendahuluSyahril SabirinPenggantiBoedionoMenteri Koordinator Bidang Ekonomi, Keuangan, dan Industri Indonesia ke-9Masa jabatan12 Juni 2001 – 9 Agustus 2001PresidenAbdurahman WahidPendahuluRizal RamliPenggantiDorodjatun Kuntjoro-JaktiRektor Universitas Koperasi IndonesiaPetahanaMulai menjabat 14 September...

 

2015 Indian filmThe Painted HouseEnglish posterDirected bySantosh BabusenanSatish BabusenanWritten bySantosh BabusenanSatish BabusenanProduced byFifth Element FilmStarringNeha MahajanKaladharan NairAkram MohammedCinematographySantosh BabusenanSatish BabusenanEdited byVijil FXMusic byK. SanthoshDistributed byFifth Element FilmRelease date 2015 (2015) Running time102 minutesCountryIndiaLanguageMalayalam The Painted House (Malayalam title: Chaayam Pooshiya Veedu) is a 2015 Indian Malayalam-...

كهف دامجيليمعلومات عامةالمكان مقاطعة قازاخ البلد  أذربيجان الإحداثيات 41°08′53″N 45°14′28″E / 41.1481°N 45.2411°E / 41.1481; 45.2411 تعديل - تعديل مصدري - تعديل ويكي بيانات كهف دامجيلي (بالأذربيجانية: Damcılı mağarası)، هو موقع كهف نصف دائري (6400-6000 قبل الميلاد) في أذربيجان، حيث تم اكتش...

 

First Baptist ChurchSouthern Facade of the First Baptist Church, Wilmington, North CarolinaReligionAffiliationCooperative Baptist FellowshipDistrictCooperative Baptist Fellowship of North CarolinaStatusActiveLocationLocationCity of WilmingtonNorth CarolinaUnited States of AmericaStateNorth CarolinaGeographic coordinates34°14′09″N 77°56′38″W / 34.2357709°N 77.9438138°W / 34.2357709; -77.9438138ArchitectureCompleted1808 First Baptist Church is a historic Bapt...

 

Legendary English ghost animal This article is about the spirit in animal form. For the racehorse, see Gytrash (horse). The title character in Charlotte Brontë's 1847 novel Jane Eyre initially fears either Mr Rochester's horse Mesrour or his black and white Newfoundland dog Pilot to be a Gytrash. Illustration by F. H. Townsend for the second edition of the book. The Gytrash /ɡaɪˈtræʃ/[citation needed], was a legendary shape-changer known in parts of the West Riding of Yorkshire....

Provincial capital and city in South Kivu, DR CongoBukavuProvincial capital and cityVille de BukavuBukavu, September 2020BukavuLocation in the Democratic Republic of the CongoCoordinates: 2°30′S 28°52′E / 2.500°S 28.867°E / -2.500; 28.867Country DR CongoProvinceSouth KivuFounded1901City status1958CommunesBagira, Ibanda, KadutuGovernment • MayorZénon Karumba[2]Area • City45 km2 (17 sq mi)Elevation1,498 m (4,91...

 

1997 American filmStagDirected byGavin WildingScreenplay by Pat Bermel Evan Tylor Story byJason SchombingProduced by John Dunning Michael Paseornek Starring Mario Van Peebles Andrew McCarthy Kevin Dillon Taylor Dayne John Stockwell William McNamara John Henson Jerry Stiller Ben Gazzara CinematographyMaryse AlbertiEdited byMark SandersMusic byPaul ZazaProductioncompanies Cinepix Film Properties Inc. Rampage Entertainment Release date June 27, 1997 (1997-06-27) Running time91 min...

 

Healthcare company in Sri Lanka Asiri Hospital Holdings PLCLogo of Asiri Hospital HoldingsTypePublicTraded asCSE: ASIR.N0000ISINLK0010N00005IndustryHealthcareFoundedSeptember 29, 1980; 43 years ago (1980-09-29)HeadquartersColombo, Sri LankaKey peopleAshok Pathirage (Chairman/managing director)Manjula Karunaratne (Chief Executive Officer)Revenue LKR22,324 million (2022)Operating income LKR4,772 million (2022)Net income LKR3,803 million (2022)Total assets L...

Brazilian food delivery platform This article is about the Brazilian food delivery company. For the diet containing the heavy isotopes of nutrients, see Heavy isotope diet. iFoodTypePrivately held companyFounded2011; 12 years ago (2011)FounderEduardo BaerFelipe Ramos FioravanteGabriel PintoGuilherme BonifacioMichel EberhardtPatrick SigristHeadquartersSão Paulo, BrazilRevenue R$208,000,000 (2019)OwnerMovile, part of Prosus (Naspers)Number of employees 5,539 (April 2021)Websi...

 

Species of fish Popoyote Conservation status Endangered (IUCN 3.1)[1] Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Chordata Class: Actinopterygii Order: Cyprinodontiformes Family: Profundulidae Genus: Tlaloc Species: T. hildebrandi Binomial name Tlaloc hildebrandi(R. R. Miller, 1950)[2] Synonyms Profundulus hildebrandi Miller, 1950[3] The Popoyote (Tlaloc hildebrandi), also known as the Chiapas killifish,[4] is a killifish fro...

 

The Baure people are an ethnic group who live in the Beni Department of Bolivia. There were 3,328 of them according to the 2012 census of which 58 spoke the Baure language natively.[1] References ^ Censo de Población y Vivienda 2012 Bolivia Características de la Población. Instituto Nacional de Estadística, República de Bolivia. p. 29. Archived from the original on 2021-08-01. Retrieved 2020-04-01. vte BoliviansIndigenous Aymara Ayoreo Baure Bororo Canichana Cayubaba Chácob...

Ratnagiri Gas and Power Private LimitedTypeA subsidiary of NTPC limitedIndustryEnergyPredecessorEnronFounded8 July 2005 (2005-07-08)HeadquartersAnjanvel, Ratnagiri, Maharashtra, IndiaServicesPower generation and LNG regasificationParentNTPC LimitedWebsitewww.rgppl.com Ratnagiri Gas and Power Private LimitedDabhol Power StationLocation of the Ratnagiri Gas and Power Private Limited in MaharashtraCountryIndiaLocationRatnagiri, Maharashtra.Coordinates17°33′42″N 73°09′44″...

 

1956 studio album by Shelly ManneMy Fair LadyStudio album by Shelly ManneReleased1956RecordedAugust 17, 1956StudioContemporary Records (Los Angeles)GenreJazzLength35:56LabelContemporary RecordsC 3527ProducerLester KoenigShelly Manne chronology More Swinging Sounds(1956) My Fair Lady(1956) Li'l Abner(1957) André Previn chronology Collaboration(1955) My Fair Lady(1956) Double Play!(1957) Professional ratingsReview scoresSourceRatingAllMusic[1]The Rolling Stone Jazz Record Guide...

 

لوم    علم شعار الإحداثيات 43°49′31″N 23°14′15″E / 43.825404°N 23.237443°E / 43.825404; 23.237443[1]  تقسيم إداري  البلد بلغاريا (15 نوفمبر 1990–) جمهورية بلغاريا الشعبية (15 سبتمبر 1946–15 نوفمبر 1990) مملكة بلغاريا (22 سبتمبر 1908–15 سبتمبر 1946) إمارة بلغاريا (13 يوليو 1878–22 سبتمبر 190...

Dani WoodwardDati biograficiNazionalità Stati Uniti Dati fisiciAltezza164 cm Peso55 kg Etniacaucasica Occhiazzurri Capellicastano ramato Seno naturalesì Misure85-66-86 Dati professionaliAltri pseudonimiDanni Woodward, Danni, Dani, Danielle Woodward, Danni Woodrow Film girati250[1] Modifica dati su Wikidata · Manuale Dani Woodward (Livonia, 7 marzo 1984) è un'ex attrice pornografica statunitense. Ha usato anche gli pseudonimi di Danni Woodward, Danni, Dani, Danielle Woodw...

 

Ogden DjunsOgden Dunes Osnovni podaci Država  Sjedinjene Američke Države Savezna država  Indijana Okrug Porter Stanovništvo Stanovništvo (2010) 1.110 Gustina stanovništva 2,9 st./km² Geografija Koordinate 41°37′22″N 87°11′30″W / 41.622815°N 87.191702°W / 41.622815; -87.191702 Vremenska zona UTC-5, leti UTC-4 Nadmorska visina 186 m Površina 3,78 km² Kopnena površina 1,92 km² Vodena površina 1,86 km² Ogden DjunsOgden Djuns (Sjedinjeni...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!