HP Forums
(15/42/47): Floor and Ceiling Functions - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (15/42/47): Floor and Ceiling Functions (/thread-20766.html)



(15/42/47): Floor and Ceiling Functions - Eddie W. Shore - 11-04-2023 12:46 AM

HP 15C

(not accurate for -1 < x < 0)

Three labels are used:
D: floor function
E: ceiling function
1: used in calculation for both (roll stack down one extra time when frac(x)≠0)
Code assumed starts from line 000.

Code:
step #:  key code : key

000:  42, 21, 14:  LBL D
001:  __, __, 36:  ENTER
002:  __, 42, 44:  FRAC
003:  __, 43, 20:  x=0
004:  __, 22, _1:  GTO 1
005:  __, __, 33:  R↓
006:  __, 43, 44:  INT
007:  43, 30, _3:  TEST 3  (x≥0)
008:  __, 43, 32:  RTN
009:  __, __, _1:  1
010:  __, __, 30:  -
011:  __, 43, 32:  RTN

012:  42, 21, 15:  LBL E
013:  __, __, 36:  ENTER
014:  __, 42, 44:  FRAC
015:  __, 43, 20:  x=0
016:  __, 22, _1:  GTO 1
017:  __, __, 33:  R↓
018:  __, 43, 44:  INT
019:  43, 30, _2:  TEST 2 (x<0)
020:  __, 43, 32:  RTN
021:  __, __, _1:  1
022:  __, __, 40:  +
023:  __, 43, 32:  RTN

024:  42, 21, _1:  LBL 1
025:  __, __, 33:  R↓
026:  __, 43, 32:  RTN


DM 42

Code:
00 { 16-Byte Prgm }
01▸LBL "FLOOR"
02 ENTER
03 ENTER
04 1
05 MOD
06 -
07 RTN
08 END

00 { 15-Byte Prgm }
01▸LBL "CEIL"
02 ENTER
03 +/-
04 1
05 MOD
06 +
07 RTN
08 .END.


HP 27S

Code:
FLOOR=X-MOD(X:1)

CEIL=X+MOD(-X:1)


Sources:

Wolfram Research, Inc. "Floor Function". Path: Integer Functions > Floor[z] > Representations through equivalent functions > With related functions. Retrieved October 30, 2023.

https://functions.wolfram.com/IntegerFunctions/Floor/27/01/05/


Wolfram Research, Inc. "Ceiling Function". Path: Integer Functions > Ceiling[z] > Representations through equivalent functions > With related functions. Retrieved October 30, 2023.

https://functions.wolfram.com/IntegerFunctions/Ceiling/27/01/05/


RE: (15/42/47): Floor and Ceiling Functions - Werner - 12-22-2023 08:28 AM

Hello Eddie;
I'm afraid the 15C versions are not correct; both FLOOR and CEIL fail for X=-0.5, returning 0 and 1 respectively.

Here's what I've been able to come up with for FLOOR; CEIL is similar
2 stack levels, 9 bytes without LBL and RTN. Using, but not changing I

 In: L.XYZT
Out: X.FYZ-

with F=FLOOR(X)

INT
X<> I
LASTX
FRAC
TEST 2 ( X<0? )
DSE I  ( always skips )
CHS    ( nop )
Rv
X<> I


Cheers, Werner


RE: (15/42/47): Floor and Ceiling Functions - Albert Chan - 12-22-2023 01:55 PM

(12-22-2023 08:28 AM)Werner Wrote:  Here's what I've been able to come up with for FLOOR; CEIL is similar ...

Or, we reuse code: CEIL(x) = -FLOOR(-x)


RE: (15/42/47): Floor and Ceiling Functions - Werner - 12-24-2023 10:08 AM

(12-22-2023 01:55 PM)Albert Chan Wrote:  
(12-22-2023 08:28 AM)Werner Wrote:  Here's what I've been able to come up with for FLOOR; CEIL is similar ...

Or, we reuse code: CEIL(x) = -FLOOR(-x)

Hi Albert; yes but that uses a subroutine level ;-)

Cheers, Werner


RE: (15/42/47): Floor and Ceiling Functions - SlideRule - 03-23-2024 03:47 PM

A modest contribution

1) Some Curious Sequences Involving floor & ceiling functions: The American Mathematical Monthly; Vol. 109, No. 6 (Jun. - Jul., 2002) pp. 559-564

2) Solving Recurrence Relations involving floor & ceiling functions: Electronics Letters; 18th August 1994 Vol. 30 No. 17, pp.1391-1393

3) a Summation Formula for Sequences Involving floor & ceiling functions: ROCKY MOUNTAIN JOURNAL OF MATHEMATICS; Volume 36, Number 5, 2006, pp. 1595-1602

BEST!
SlideRule


RE: (15/42/47): Floor and Ceiling Functions - Matt Agajanian - 05-17-2024 08:01 PM

Hi.

So, after the smoke clears, what would the CEIL and FLOOR code for the 15C, 34C and 42S? Thanks.