Add doctests to existing f16 and f128 functions · model-checking/verify-rust-std@6cb3d34 (original) (raw)

`@@ -221,8 +221,22 @@ impl f128 {

`

221

221

`pub const MAX_10_EXP: i32 = 4_932;

`

222

222

``

223

223

`` /// Returns true if this value is NaN.

``

``

224

`+

///

`

``

225


/// ```

``

226

`+

/// #![feature(f128)]

`

``

227

`` +

/// # // FIXME(f16_f128): remove when unordtf2 is available

``

``

228

`+

/// # #[cfg(target_arch = "x86_64", target_os = "linux")] {

`

``

229

`+

///

`

``

230

`+

/// let nan = f128::NAN;

`

``

231

`+

/// let f = 7.0_f128;

`

``

232

`+

///

`

``

233

`+

/// assert!(nan.is_nan());

`

``

234

`+

/// assert!(!f.is_nan());

`

``

235

`+

/// # }

`

``

236


/// ```

224

237

`#[inline]

`

225

238

`#[must_use]

`

``

239

`+

#[cfg(not(bootstrap))]

`

226

240

`#[unstable(feature = "f128", issue = "116909")]

`

227

241

`` #[allow(clippy::eq_op)] // > if you intended to check if the operand is NaN, use .is_nan() instead :)

``

228

242

`pub const fn is_nan(self) -> bool {

`

`@@ -234,7 +248,7 @@ impl f128 {

`

234

248

`/// meaning to the sign bit in case of a NaN, and as Rust doesn't guarantee that

`

235

249

`/// the bit pattern of NaNs are conserved over arithmetic operations, the result of

`

236

250

`` /// is_sign_positive on a NaN might produce an unexpected result in some cases.

``

237

``

`-

/// See explanation of NaN as a special value for more info.

`

``

251

`+

/// See explanation of NaN as a special value for more info.

`

238

252

`///

`

239

253

```` /// ```


`240`

`254`

`/// #![feature(f128)]

`

`@@ -257,7 +271,7 @@ impl f128 {

`

`257`

`271`

`/// meaning to the sign bit in case of a NaN, and as Rust doesn't guarantee that

`

`258`

`272`

`/// the bit pattern of NaNs are conserved over arithmetic operations, the result of

`

`259`

`273`

`` /// `is_sign_negative` on a NaN might produce an unexpected result in some cases.

``

`260`

``

`-

/// See [explanation of NaN as a special value](f32) for more info.

`

``

`274`

`+

/// See [explanation of NaN as a special value](f128) for more info.

`

`261`

`275`

`///

`

`262`

`276`

```` /// ```

263

277

`/// #![feature(f128)]

`

`@@ -287,6 +301,14 @@ impl f128 {

`

287

301

`///

`

288

302

`` /// Note that this function is distinct from as casting, which attempts to

``

289

303

`/// preserve the numeric value, and not the bitwise value.

`

``

304

`+

///

`

``

305


/// ```

``

306

`+

/// #![feature(f128)]

`

``

307

`+

///

`

``

308

`+

/// # // FIXME(f16_f128): enable this once const casting works

`

``

309

`+

/// # // assert_ne!((1f128).to_bits(), 1f128 as u128); // to_bits() is not casting!

`

``

310

`+

/// assert_eq!((12.5f128).to_bits(), 0x40029000000000000000000000000000);

`

``

311


/// ```

290

312

`#[inline]

`

291

313

`#[unstable(feature = "f128", issue = "116909")]

`

292

314

`#[must_use = "this returns the result of the operation, without modifying the original"]

`

`@@ -326,6 +348,16 @@ impl f128 {

`

326

348

`///

`

327

349

`` /// Note that this function is distinct from as casting, which attempts to

``

328

350

`/// preserve the numeric value, and not the bitwise value.

`

``

351

`+

///

`

``

352


/// ```

``

353

`+

/// #![feature(f128)]

`

``

354

`` +

/// # // FIXME(f16_f128): remove when eqtf2 is available

``

``

355

`+

/// # #[cfg(all(target_arch = "x86_64", target_os = "linux"))] {

`

``

356

`+

///

`

``

357

`+

/// let v = f128::from_bits(0x40029000000000000000000000000000);

`

``

358

`+

/// assert_eq!(v, 12.5);

`

``

359

`+

/// # }

`

``

360


/// ```

329

361

`#[inline]

`

330

362

`#[must_use]

`

331

363

`#[unstable(feature = "f128", issue = "116909")]

`