Sponsored Content
Top Forums Shell Programming and Scripting [FUN] Numbers to Roman letters/num Post 302928133 by sea on Tuesday 9th of December 2014 06:31:16 AM
Old 12-09-2014
[FUN] Numbers to Roman letters/num

Heyas

Just a little fun script (code block) i'd like to share for fun.
Code:
#/bin/bash
# roman.sh
#
#	Function
#
	num2roman() { # NUM
	# Returns NUM in roman letters
	#
		input=$1	# input num
		output=""	# Clear output string
		len=${#input}	# Initial length to count down
		
		roman_val() { # NUM one five ten
		# This sub does the basic 'roman' algorythm
		#
			N=$1
			one=$2
			five=$3
			ten=$4
			out=""
			
			case $N in
			0)	out+=""	;;
			[123])	while [[ $N -gt 0 ]]
				do	out+="$one"
					N=$(($N-1))
				done
				;;
			4)	out+="$one$five"	;;
			5)	out+="$five"	;;
			[678])	out+="$five"
				N=$(($N-5))
				while [[ $N -gt 0 ]]
				do	out+="$one"
					N=$(($N-1))
				done
				;;
			9)	while [[ $N -lt 10 ]]
				do	out+="$one"
					N=$(($N+1))
				done
				out+="$ten"
				;;
			esac
			echo $out
		}
		
		while [[ $len -gt 0  ]]
		do	# There are letters to add
			num=${input:0:1}
			# Do action according position
			case $len in
			1)	# 1
				output+="$(roman_val $num I V X)"
				;;
			2)	# 10
				output+="$(roman_val $num X L C)"
				;;
			3)	# 100
				output+="$(roman_val $num C D M)"
				;;
			*)	# 1000+
				# 10'000 gets a line above, 100'000 gets a line on the left.. how to?
				num=${input:0:(-3)}
				while [[ $num -gt 0 ]]
				do	output+="M"
					num=$(($num-1))
				done
				
				;;
			esac
			input=${input:1} ; len=${#input}
		done
		echo $output
	}
#
#	Call it
#
	num2roman $1

Output:
Code:
+ ~ $ for N in 1 4 5 6 8 9 10 13 42 99 123 256 1024 2048 3999;do ./roman.sh $N;done

I
IV
V
VI
VIII
IX
X
XIII
XLII
XCIX
CXXIII
CCLVI
MXXIV
MMXLVIII
MMMCMXCIX

Hth & have fun Smilie
These 6 Users Gave Thanks to sea For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Letters, Numbers or Alphanumerical

How do I check if a variable consisted of letters, numbers or both letters and numbers? For example, I have a variable $X and I want to print "1" if it contains only letters, "2" if it contains only numbers and "3" if it contains both (2 Replies)
Discussion started by: sleepster
2 Replies

2. UNIX for Dummies Questions & Answers

Help! scrolling numbers and letters

Hello all I am a unix newbie.... I have a sun netra t1 and it is freaking out I am connected to it through a console port, and it is just spitting out a ton on numbers and letters like below its just keeps going and going. I have tried rebooting it and I cannot get it back to any kind of a... (1 Reply)
Discussion started by: intraining11
1 Replies

3. Shell Programming and Scripting

sed command, look for numbers following letters

If I have a set of strings, C21 F231 H42 1C10 1F113 and I want to isolate the ints following the char, what would the sed string be to find numbers after letters? If I do, *, I will get numbers after letters, but I am looking to do something like, sed 's/*/\t*/g' this will give me... (14 Replies)
Discussion started by: LMHmedchem
14 Replies

4. Shell Programming and Scripting

Sort roman numerals

If I use ls to print all the files of a folder, is there a way to sort using roman numerals? I am thinking about a result like: benjamin_I.wmv benjamin_II.wmv benjamin_II.wmv benjamin_III.wmv benjamin_IV.wmv benjamin_V.wmv benjamin_VI.wmv benjamin_VII.wmv benjamin_VIII.wmv... (6 Replies)
Discussion started by: locoroco
6 Replies

5. Shell Programming and Scripting

reducing values in columns with both numbers and letters

Hi, I columns with both number and letters however i need the number 4 trimmed off the lines that have 3 numbers in them so it just because the 2 preceding numbers only For example V25QG2-K18QG-V25CG2 L26HG-L17HA-L26CG I434QD1-L19HB2-I434CD1 I434QD1-A31QB-I434CD1 ... (7 Replies)
Discussion started by: olifu02
7 Replies

6. UNIX for Dummies Questions & Answers

Selective Replacements: Using sed or awk to replace letters with numbers in a very specific way

Hello all. I am a beginner UNIX user who is using UNIX to work on a bioinformatics project for my university. I have a bit of a complicated issue in trying to use sed (or awk) to "find and replace" bases (letters) in a genetics data spreadsheet (converted to a text file, can be either... (3 Replies)
Discussion started by: Mince
3 Replies

7. Shell Programming and Scripting

awk : match only the pattern string , not letters or numbers after that.

Hi Experts, I am finding difficulty to get exact match: file OPERATING_SYSTEM=HP-UX LOOPBACK_ADDRESS=127.0.0.1 INTERFACE_NAME="lan3" IP_ADDRESS="10.53.52.241" SUBNET_MASK="255.255.255.192" BROADCAST_ADDRESS="" INTERFACE_STATE="" DHCP_ENABLE=0 INTERFACE_NAME="lan3:1"... (6 Replies)
Discussion started by: rveri
6 Replies

8. Shell Programming and Scripting

Sorting mixed numbers and letters

Hello, I have a file such as this: chr1 chr2 chr1 chr2 chr3 chr10 chr4 chr5 chrz chr1AI want to sort it, I use this command: sort -k1 -th -n testfilebut I get this output, how can I fix this? chr1 chr1 chr10 chr1A chr2 chr2 (3 Replies)
Discussion started by: Homa
3 Replies

9. UNIX for Dummies Questions & Answers

sed - extract a group of Letters/numbers

I have a file with hundreds of lines in it. I wanted to extract anything that matches the following: KR followed by 4 digits: example KR1201 cat list | sed "s///g" Is the closest I've come, and obviously it is not what I want. This would remove all of the items that I want and leave me... (2 Replies)
Discussion started by: newbie2010
2 Replies

10. UNIX for Beginners Questions & Answers

Decimal numbers and letters in the same collums: round numbers

Hi! I found and then adapt the code for my pipeline... awk -F"," -vOFS="," '{printf "%0.2f %0.f\n",$2,$4}' xxx > yyy I add -F"," -vOFS="," (for input and output as csv file) and I change the columns and the number of decimal... It works but I have also some problems... here my columns ... (7 Replies)
Discussion started by: echo manolis
7 Replies
BESSEL(3pm)						User Contributed Perl Documentation					       BESSEL(3pm)

NAME
PDL::GSLSF::BESSEL - PDL interface to GSL Special Functions DESCRIPTION
This is an interface to the Special Function package present in the GNU Scientific Library. SYNOPSIS
FUNCTIONS
gsl_sf_bessel_Jn Signature: (double x(); double [o]y(); double [o]e(); int n) Regular Bessel Function J_n(x). gsl_sf_bessel_Jn does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_J_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Regular Bessel Functions J_{s}(x) to J_{s+n-1}(x). gsl_sf_bessel_J_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Yn Signature: (double x(); double [o]y(); double [o]e(); int n) IrRegular Bessel Function Y_n(x). gsl_sf_bessel_Yn does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Y_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Regular Bessel Functions Y_{s}(x) to Y_{s+n-1}(x). gsl_sf_bessel_Y_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_In Signature: (double x(); double [o]y(); double [o]e(); int n) Regular Modified Bessel Function I_n(x). gsl_sf_bessel_In does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_I_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Regular Modified Bessel Functions I_{s}(x) to I_{s+n-1}(x). gsl_sf_bessel_I_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_In_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled Regular Modified Bessel Function exp(-|x|) I_n(x). gsl_sf_bessel_In_scaled does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_I_scaled_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Scaled Regular Modified Bessel Functions exp(-|x|) I_{s}(x) to exp(-|x|) I_{s+n-1}(x). gsl_sf_bessel_I_scaled_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Kn Signature: (double x(); double [o]y(); double [o]e(); int n) IrRegular Modified Bessel Function K_n(x). gsl_sf_bessel_Kn does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_K_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of IrRegular Modified Bessel Functions K_{s}(x) to K_{s+n-1}(x). gsl_sf_bessel_K_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Kn_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled IrRegular Modified Bessel Function exp(-|x|) K_n(x). gsl_sf_bessel_Kn_scaled does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_K_scaled_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Scaled IrRegular Modified Bessel Functions exp(-|x|) K_{s}(x) to exp(-|x|) K_{s+n-1}(x). gsl_sf_bessel_K_scaled_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_jl Signature: (double x(); double [o]y(); double [o]e(); int n) Regular Sphericl Bessel Function J_n(x). gsl_sf_bessel_jl does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_j_array Signature: (double x(); double [o]y(num); int n=>num) Array of Spherical Regular Bessel Functions J_{0}(x) to J_{n-1}(x). gsl_sf_bessel_j_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_yl Signature: (double x(); double [o]y(); double [o]e(); int n) IrRegular Spherical Bessel Function y_n(x). gsl_sf_bessel_yl does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_y_array Signature: (double x(); double [o]y(num); int n=>num) Array of Regular Spherical Bessel Functions y_{0}(x) to y_{n-1}(x). gsl_sf_bessel_y_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_il_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled Regular Modified Spherical Bessel Function exp(-|x|) i_n(x). gsl_sf_bessel_il_scaled does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_i_scaled_array Signature: (double x(); double [o]y(num); int n=>num) Array of Scaled Regular Modified Spherical Bessel Functions exp(-|x|) i_{0}(x) to exp(-|x|) i_{n-1}(x). gsl_sf_bessel_i_scaled_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_kl_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled IrRegular Modified Spherical Bessel Function exp(-|x|) k_n(x). gsl_sf_bessel_kl_scaled does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_k_scaled_array Signature: (double x(); double [o]y(num); int n=>num) Array of Scaled IrRegular Modified Spherical Bessel Functions exp(-|x|) k_{s}(x) to exp(-|x|) k_{s+n-1}(x). gsl_sf_bessel_k_scaled_array does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Jnu Signature: (double x(); double [o]y(); double [o]e(); double n) Regular Cylindrical Bessel Function J_nu(x). gsl_sf_bessel_Jnu does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Ynu Signature: (double x(); double [o]y(); double [o]e(); double n) IrRegular Cylindrical Bessel Function J_nu(x). gsl_sf_bessel_Ynu does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Inu_scaled Signature: (double x(); double [o]y(); double [o]e(); double n) Scaled Modified Cylindrical Bessel Function exp(-|x|) I_nu(x). gsl_sf_bessel_Inu_scaled does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Inu Signature: (double x(); double [o]y(); double [o]e(); double n) Modified Cylindrical Bessel Function I_nu(x). gsl_sf_bessel_Inu does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Knu_scaled Signature: (double x(); double [o]y(); double [o]e(); double n) Scaled Modified Cylindrical Bessel Function exp(-|x|) K_nu(x). gsl_sf_bessel_Knu_scaled does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_Knu Signature: (double x(); double [o]y(); double [o]e(); double n) Modified Cylindrical Bessel Function K_nu(x). gsl_sf_bessel_Knu does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. gsl_sf_bessel_lnKnu Signature: (double x(); double [o]y(); double [o]e(); double n) Logarithm of Modified Cylindrical Bessel Function K_nu(x). gsl_sf_bessel_lnKnu does not process bad values. It will set the bad-value flag of all output piddles if the flag is set for any of the input piddles. AUTHOR
This file copyright (C) 1999 Christian Pellegrin <chri@infis.univ.trieste.it> All rights reserved. There is no warranty. You are allowed to redistribute this software / documentation under certain conditions. For details, see the file COPYING in the PDL distribution. If this file is separated from the PDL distribution, the copyright notice should be included in the file. The GSL SF modules were written by G. Jungman. perl v5.14.2 2012-05-30 BESSEL(3pm)
All times are GMT -4. The time now is 09:03 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy