Sponsored Content
Operating Systems OS X (Apple) A fixed point basic calculator for DASH. Post 303027229 by Corona688 on Tuesday 11th of December 2018 05:47:33 PM
Old 12-11-2018
BASH mandelbrot set:

Code:
DP=8
MOD=1
while [[ "${#MOD}" -le "${DP}" ]]
do
        MOD="${MOD}0"
done

ESCAPED=0

function ftofix {       # ftofix OUTPUTNAME "3.14"
        local _N="0"
        local D=0
        local X
        local Y

        # Convert "VAR" "-.3" into "VAR" "-" "0.3", etc
        case "$2" in
        [.]*)           set -- "$1" "" "0$2"            ;;
        [0-9]*)         set -- "$1" "" "$2"             ;;
        [+-][0-9.]*)    set -- "$1" "${2:0:1}" "${2:1}" ;;
        *)              return 1                        ;;
        esac

        for((X=0; X<${#3}; X++))
        do
                if [[ "${3:$X:1}" == "." ]]
                then
                        (( X++ )) ; break
                fi

                (( _N = (10*_N) + ${3:$X:1} ))
        done

        while [[ "$D" -lt "$DP" ]]
        do
                Y="${3:$((X+D)):1}"
                [ -z "$Y" ] && Y=0

                (( _N = (10*_N) + Y ))
                (( D++ ))
        done

        read "$1" <<EOF
${2}${_N}
EOF
}

function fixtof {
        _VAR="$1"
        _N="$2"
        _SIGN=""
        ((_N<0)) && _SIGN="-" && ((_N=-_N))
        _S=`printf "%s%d.%0${DP}d" "${_SIGN}" $((_N/MOD)) $((_N%MOD))`
        read $_VAR <<EOF
$_S
EOF
}

function escape { # R I
        # Z Z C C R
        set -- 0 0 $1 $2 $(( (($1*$1)+($2*$2))/MOD ))
        local N=0

        while [[ "$N" -lt "$EMAX" ]] && [[ "$5" -lt $((4*MOD)) ]]
        do
                set -- $(( $3 + (($1*$1) - ($2*$2))/MOD ))      \
                        $(( $4 + (2*$1*$2)/MOD )) $3 $4         \
                        $(( (($1*$1)+($2*$2))/MOD ))
                (( N++ ))
        done

        (( N >= EMAX )) && (( ESCAPED ++ ))

        return $N
}

Y=0

STUFF=" .oOo. -=%#%=-"

ftofix CY       ${1-0.0}
ftofix CX       ${2--0.5}
ftofix W        ${3-1.0}
EMAX=${4-100}

XMIN=$((CX-W))
XMAX=$((CX+W))
YMIN=$((CY-W))
YMAX=$((CY+W))

XSTEP=$(( (XMAX-XMIN) / 70 ))
YSTEP=$(( (YMAX-YMIN) / 20 ))

for ((Y=YMIN; Y < YMAX; Y += YSTEP ))
do
        S=""
        for ((X=XMIN; X < XMAX; X += XSTEP ))
        do
                escape "$X" "$Y"
                Z="$?"
                [ "$Z" -eq "$EMAX" ] && Z=0 || (( Z %= ${#STUFF} ))

                S="$S${STUFF:$Z:1}"
        done
        echo "|$S|"
done

echo "Escaped $ESCAPED times" >&2

exit 0

Code:
./mandel2.sh

|Ooooooooooooooooooooooooooooo...........    -=%%.#%=-- ........oooooooO|
|oooooooooooooooooooooooo.............     -=%#%o%%o%%=-    .......ooooo|
|oooooooooooooooooooo.............   ----==%%O      .# #=--      .....oo|
|oooooooooooooooo...........   -==%o%%%%%##%=.       O=%##%==----==- ...|
|oooooooooooo......        ---==% .  Ooo                   o-=-=oo%==  .|
|oooooo....             ----=%# =.                               = %--  |
|....  -=%%%==============%%#=.o                                  .%#== |
|     --=%% o-o-- %   =%##%%.%                                     o-%--|
|   -===%-=.=            -oO%                                      -.#- |
|==%%- O.o                 O                                       %=-  |
|                                                              --%%=--  |
|==%%- O.o                 O                                       %=-  |
|   -===%-=.=            -oO%                                      -.#- |
|     --=%% o-o-- %   =%##%%.%                                     o-%--|
|....  -=%%%==============%%#=.o                                  .%#== |
|oooooo....             ----=%# =.                               = %--  |
|oooooooooooo......        ---==% .  Ooo                   o-=-=oo%==  .|
|oooooooooooooooo...........   -==%o%%%%%##%=.       O=%##%==----==- ...|
|oooooooooooooooooooo.............   ----==%%O      .# #=--      .....oo|
|oooooooooooooooooooooooo.............     -=%#%o%%o%%=-    .......ooooo|

$

I don't expect this to run on the amiga with any reasonable speed.
This User Gave Thanks to Corona688 For This Post:
 

7 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Fibre connection Point to Point SUN

Anyone know of a guide or instructions for Solaris I got to configure a SBUS HBA to talk to a tape robot. I have done this on a switch but not point to point. just going HBA >>>>> TAPE Fibre simple two nodes Kie (6 Replies)
Discussion started by: kie
6 Replies

2. UNIX for Dummies Questions & Answers

dash after ampersant

Hi! I'm new in these forums and more or less new with Unix. So... here is the question: does anyone know where is redirected the output of a command when you put >&- after it? Does it means any standard file descriptor? Thanks! (2 Replies)
Discussion started by: csecnarf
2 Replies

3. Shell Programming and Scripting

How to perform a hexdump using dd from start point to end point?

hi, I would like to ask or is it possible to dump a hex using dd from starting point to end point just like the "xxd -s 512 -l 512 <bin file>" I know the redirect hexdump -C but i can't figure it out the combination options of dd. Hope someone can share their knowledge.. Thanks in... (3 Replies)
Discussion started by: jao_madn
3 Replies

4. Post Here to Contact Site Administrators and Moderators

How to sum up data in fixed width file with decimal point?

HI Everyone, I have below source file AAA|NAME1|ADDRESS1|300.20 BBB|NAME2|ADDRESS2|400.31 CCC|NAME3|ADDRESS3|300.34 I have requirement where I need to sum up fourth field in above fixed width pipe delimited flat file. When I use below code, it gives me value 1001.00 But I am expecting... (1 Reply)
Discussion started by: patricjemmy6
1 Replies

5. Shell Programming and Scripting

Fixed mount point for a USB cardreader (Raspberry Pi, UDEV)

Hey all! :) I'm trying to create a fixed mount point for an usb cardreader. I've found a script on a raspberry pi forum which does the following: usb stick is plugged in -> script checks the mount point for data -> script starts copying the files automatically -> script unmounts the... (0 Replies)
Discussion started by: Eomer
0 Replies

6. UNIX for Beginners Questions & Answers

How to create a new mount point with 600GB and add 350 GBexisting mount point? IN AIX

How to create a new mount point with 600GB and add 350 GBexisting mount point Best if there step that i can follow or execute before i mount or add diskspace IN AIX Thanks (2 Replies)
Discussion started by: Thilagarajan
2 Replies

7. Shell Programming and Scripting

A dash to GOTO or a dash from GOTO, that is the question...

Well, guys I saw a question about GOTO for Python. So this gave me the inspiration to attempt a GOTO function for 'dash', (bash and ksh too). Machine: MBP OSX 10.14.3, default bash terminal, calling '#!/usr/local/bin/dash'... This is purely a fun project to see if it is possible in PURE... (3 Replies)
Discussion started by: wisecracker
3 Replies
All times are GMT -4. The time now is 04:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy