Skip to content

Instantly share code, notes, and snippets.

@ByteJoseph
Created June 24, 2026 09:34
Show Gist options
  • Select an option

  • Save ByteJoseph/84d19432f50f1695fc5ce0d1aa1723bc to your computer and use it in GitHub Desktop.

Select an option

Save ByteJoseph/84d19432f50f1695fc5ce0d1aa1723bc to your computer and use it in GitHub Desktop.
linear regression machine learning model in pure Maluscript
neelam(sadhanam){
"# array length kanan ulla function";
ennam = 0;
sadhanam = sadhanam+"\0";
sadhanam[ennam] um "\0" um thullyamalla enkil avarthikuka {
ennam = ennam + 1;
}
ennam kodukuka;
}
" # njan mathdiv avasanam aan design cheythath
# 5/2 returns 2
# mathdiv<5,2> returns 2.5
";
mathdiv(s1,s2){
integer = s1/s2;
remainder = s1%s2;
fractional = 0.0;
place = 0.1;
i = 0;
remainder ne_kal 1 veluthan enkil {
0 ne_kal remainder veluthan enkil {
integer kodukuka;
}
}
10 um i um onnallenkil avarthikuka {
remainder = remainder * 10;
digit = remainder/s2;
fractional = fractional + (digit * place);
remainder = remainder%s2;
place = place * 0.1;
i = i+1;
}
integer + fractional kodukuka;
}
mean(sadhanam){
"# mean kanan ulla function";
length = neelam<sadhanam>;
i = 0;
thuka = 0;
"
# weird behaviour
# 'Unrecognised token `i` expected `As`' bug while trying
# length nekal i cheruthan enkil avarthikuka {
";
"# it was a typo in readme. 'ne_kal' is the keyword, not 'nekal' ";
length um i um onnallenkil avarthikuka {
thuka = thuka + sadhanam[i];
i = i+1;
}
mathdiv<thuka,length> kodukuka;
}
deviation(sadhanam){
length = neelam<sadhanam>;
data_mean = mean<sadhanam>;
j = 0 ;
dev = []; "# short for deviation";
length um j um onnallenkil avarthikuka {
dev = dev+(sadhanam[j]-data_mean);
j = j+1;
}
dev kodukuka;
}
covariance(x_dev,y_dev){
thuka = 0;
x_length = neelam<x_dev>;
y_length = neelam<y_dev>;
cheriya_neelam = y_length;
x_length ne_kal y_length cheruthan enkil {
cheriya_neelam = x_length;
}
length = cheriya_neelam;
k = 0;
length um k um onnallenkil avarthikuka {
thuka = thuka + (x_dev[k]*y_dev[k]);
k = k+1;
}
thuka kodukuka;
}
data_kanik(sadhanam){
sadhanam kanikuka;
"\n" kanikuka;
}
"# Linear Regression";
x = [1, 2, 3, 4];
y = [2, 4, 6, 8];
"x: " kanikuka;
data_kanik<x>;
"y: " kanikuka;
data_kanik<y>;
x_deviation = deviation<x>;
y_deviation = deviation<y>;
cov = covariance<x_deviation,y_deviation>;
variance = covariance<x_deviation,x_deviation>;
m = cov/variance;
"# c = y_mean - m * x_mean ";
c = mean<y> - m * mean<x>;
"# prediction
# y = mx+c ";
pravachanam(x){
y = (m*x+c);
"X : " +x+"\n" kanikuka;
"Y Pravachanam: " kanikuka;
y kanikuka;
"\n" kanikuka;
}
"\npadicha parameters \n" kanikuka;
" m: " + m + " \n c :"+c+"\n" kanikuka;
x_new = 17;
pravachanam<x_new>;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment