README.md (5367B)
1 <!-- 2 3 @license Apache-2.0 4 5 Copyright (c) 2020 The Stdlib Authors. 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18 19 --> 20 21 # isSquareTriangularNumber 22 23 > Test if a value is a [square triangular number][square-triangular-number]. 24 25 <section class="intro"> 26 27 A **square triangular number** is an integer value which is both a [square number][@stdlib/assert/is-square-number] and a [triangular number][@stdlib/assert/is-triangular-number]. 28 29 [Triangular numbers][@stdlib/assert/is-triangular-number] can be computed using the following formula 30 31 <!-- <equation class="equation" label="eq:triangular_number" align="center" raw="T_n = \frac{n(n+1)}{2}" alt="Triangular number formula."> --> 32 33 <div class="equation" align="center" data-raw-text="T_n = \frac{n(n+1)}{2}" data-equation="eq:triangular_number"> 34 <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@b295a09a80f4fd0cc84682dcda0fe3e354394c0c/lib/node_modules/@stdlib/assert/is-square-triangular-number/docs/img/equation_triangular_number.svg" alt="Triangular number formula."> 35 <br> 36 </div> 37 38 <!-- </equation> --> 39 40 for `n >= 0`. 41 42 By analogy with the square root of `x`, one can define the positive triangular root of `x` such that `T_n = x` 43 44 <!-- <equation class="equation" label="eq:triangular_root" align="center" raw="n = \frac{\sqrt{8x+1} - 1}{2}" alt="Triangular root formula."> --> 45 46 <div class="equation" align="center" data-raw-text="n = \frac{\sqrt{8x+1} - 1}{2}" data-equation="eq:triangular_root"> 47 <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@b295a09a80f4fd0cc84682dcda0fe3e354394c0c/lib/node_modules/@stdlib/assert/is-square-triangular-number/docs/img/equation_triangular_root.svg" alt="Triangular root formula."> 48 <br> 49 </div> 50 51 <!-- </equation> --> 52 53 Accordingly, an integer `x` is a [triangular number][@stdlib/assert/is-triangular-number] **if and only** if `8x+1` is a [square number][@stdlib/assert/is-square-number]. 54 55 </section> 56 57 <!-- /.intro --> 58 59 <section class="usage"> 60 61 ## Usage 62 63 ```javascript 64 var isSquareTriangularNumber = require( '@stdlib/assert/is-square-triangular-number' ); 65 ``` 66 67 #### isSquareTriangularNumber( value ) 68 69 Tests if a `value` is a [square triangular number][square-triangular-number]. 70 71 <!-- eslint-disable no-new-wrappers --> 72 73 ```javascript 74 var Number = require( '@stdlib/number/ctor' ); 75 76 var bool = isSquareTriangularNumber( 36.0 ); 77 // returns true 78 79 bool = isSquareTriangularNumber( new Number( 36.0 ) ); 80 // returns true 81 82 bool = isSquareTriangularNumber( 3.14 ); 83 // returns false 84 85 bool = isSquareTriangularNumber( -5.0 ); 86 // returns false 87 88 bool = isSquareTriangularNumber( NaN ); 89 // returns false 90 91 bool = isSquareTriangularNumber( null ); 92 // returns false 93 ``` 94 95 #### isSquareTriangularNumber.isPrimitive( value ) 96 97 Tests if a `value` is a primitive [square triangular number][square-triangular-number]. 98 99 <!-- eslint-disable no-new-wrappers --> 100 101 ```javascript 102 var Number = require( '@stdlib/number/ctor' ); 103 104 var bool = isSquareTriangularNumber.isPrimitive( 36.0 ); 105 // returns true 106 107 bool = isSquareTriangularNumber.isPrimitive( new Number( 36.0 ) ); 108 // returns false 109 ``` 110 111 #### isSquareTriangularNumber.isObject( value ) 112 113 Tests if a `value` is a `Number` object having a value which is a [square triangular number][square-triangular-number]. 114 115 <!-- eslint-disable no-new-wrappers --> 116 117 ```javascript 118 var Number = require( '@stdlib/number/ctor' ); 119 120 var bool = isSquareTriangularNumber.isObject( 36.0 ); 121 // returns false 122 123 bool = isSquareTriangularNumber.isObject( new Number( 36.0 ) ); 124 // returns true 125 ``` 126 127 </section> 128 129 <!-- /.usage --> 130 131 <section class="notes"> 132 133 ## Notes 134 135 - Return values are not reliable for numbers greater than `1125899906842624`. 136 137 </section> 138 139 <!-- /.notes --> 140 141 <section class="examples"> 142 143 ## Examples 144 145 <!-- eslint-disable no-new-wrappers --> 146 147 <!-- eslint no-undef: "error" --> 148 149 ```javascript 150 var Number = require( '@stdlib/number/ctor' ); 151 var isSquareTriangularNumber = require( '@stdlib/assert/is-square-triangular-number' ); 152 153 var bool = isSquareTriangularNumber( 36.0 ); 154 // returns true 155 156 bool = isSquareTriangularNumber( new Number( 36.0 ) ); 157 // returns true 158 159 bool = isSquareTriangularNumber( 0.0 ); 160 // returns true 161 162 bool = isSquareTriangularNumber( 1.0 ); 163 // returns true 164 165 bool = isSquareTriangularNumber( 3.14 ); 166 // returns false 167 168 bool = isSquareTriangularNumber( -5.0 ); 169 // returns false 170 171 bool = isSquareTriangularNumber( NaN ); 172 // returns false 173 174 bool = isSquareTriangularNumber( '0.5' ); 175 // returns false 176 177 bool = isSquareTriangularNumber( null ); 178 // returns false 179 ``` 180 181 </section> 182 183 <!-- /.examples --> 184 185 <section class="links"> 186 187 [square-triangular-number]: https://en.wikipedia.org/wiki/Square_triangular_number 188 189 [@stdlib/assert/is-square-number]: https://www.npmjs.com/package/@stdlib/assert/tree/main/is-square-number 190 191 [@stdlib/assert/is-triangular-number]: https://www.npmjs.com/package/@stdlib/assert/tree/main/is-triangular-number 192 193 </section> 194 195 <!-- /.links -->