From bb9b5f6f9274a67fc30d099eeb4a797f1993f25f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Ramnel=C3=B6v?= <felra653@student.liu.se>
Date: Wed, 11 Dec 2024 13:42:44 +0100
Subject: [PATCH] Lab 3: Updated date distance to ignore year, updated figures

---
 lab3/assignment2.R                            |  40 +++++---
 lab3/figures/assignment2-added-kernels.eps    |  70 ++++++-------
 lab3/figures/assignment2-added-kernels.png    | Bin 5171 -> 5351 bytes
 lab3/figures/assignment2-distance-kernel.png  | Bin 5481 -> 0 bytes
 .../assignment2-multiplied-kernels.eps        |  93 ++++++++++--------
 .../assignment2-multiplied-kernels.png        | Bin 4999 -> 5364 bytes
 ... assignment2-physical-distance-kernel.eps} |   4 +-
 .../assignment2-physical-distance-kernel.png  | Bin 0 -> 5732 bytes
 8 files changed, 118 insertions(+), 89 deletions(-)
 delete mode 100644 lab3/figures/assignment2-distance-kernel.png
 rename lab3/figures/{assignment2-distance-kernel.eps => assignment2-physical-distance-kernel.eps} (99%)
 create mode 100644 lab3/figures/assignment2-physical-distance-kernel.png

diff --git a/lab3/assignment2.R b/lab3/assignment2.R
index 898a547..f71fbf8 100644
--- a/lab3/assignment2.R
+++ b/lab3/assignment2.R
@@ -28,7 +28,6 @@ times <- c(
   "24:00:00"
 )
 
-
 st$time <- strptime(st$time, format = "%H:%M:%S")
 
 gaussian_kernel <- function(x, h) {
@@ -41,7 +40,7 @@ plot(
   type = 'l',
   xlab = "Physical distance",
   ylab = "Kernel value",
-  main = "Gaussian distance kernel"
+  main = "Gaussian physical distance kernel"
 )
 grid()
 
@@ -65,6 +64,29 @@ plot(
 )
 grid()
 
+date_diff_ignoring_year <- function(date1, date2) {
+  
+  # Generate new dates with the same year
+  date1 <- strsplit(date1, "-")[[1]]
+  date2 <- strsplit(date2, "-")[[1]]
+  month1 <- date1[2]
+  day1 <- date1[3]
+  month2 <- date2[2]
+  day2 <- date2[3]
+  date1 <- as.Date(paste("2000", month1, day1, sep = "-"))
+  date2 <- as.Date(paste("2000", month2, day2, sep = "-"))
+  
+  # Get difference in days
+  diff <- abs(as.numeric(date1-date2))
+
+  # If difference is greater than half a year, go other way
+  if (diff >= 183) {
+    diff <- 366 - diff
+  } 
+  
+  return(diff)
+}
+
 temp_add <- c()
 temp_mult <- c()
 
@@ -85,7 +107,7 @@ for (time in times) {
   
   
   date_kernels <- mapply(function(x_i) {
-    dist <- as.numeric(as.Date(date) - as.Date(x_i))
+    dist <- date_diff_ignoring_year(date, x_i)
     gaussian_kernel(dist, h_date)
   }, st_temp$date)
   
@@ -114,11 +136,7 @@ plot(
   ylab = "Temperature",
   main = "Added kernels"
 )
-axis(
-  1,                              
-  at = 1:length(times),         
-  labels = times                  
-)
+axis(1, at = 1:length(times), labels = times)
 grid()
 
 plot(
@@ -129,9 +147,5 @@ plot(
   ylab = "Temperature",
   main = "Multiplied kernels"
 )
-axis(
-  1,                              
-  at = 1:length(times),         
-  labels = times                  
-)
+axis(1, at = 1:length(times), labels = times)
 grid()
\ No newline at end of file
diff --git a/lab3/figures/assignment2-added-kernels.eps b/lab3/figures/assignment2-added-kernels.eps
index 6b53ab1..d8b1859 100644
--- a/lab3/figures/assignment2-added-kernels.eps
+++ b/lab3/figures/assignment2-added-kernels.eps
@@ -144,29 +144,29 @@ bp
 1 setlinejoin
 10.00 setmiterlimit
 np
-72.40 79.64 m
-33.40 30.73 l
-33.40 43.10 l
-33.40 44.02 l
-33.40 29.75 l
-33.40 7.52 l
-33.40 -11.99 l
-33.40 -21.11 l
-33.40 -19.98 l
-33.40 -12.34 l
-33.40 -0.80 l
+72.40 92.57 m
+33.40 34.69 l
+33.40 40.11 l
+33.40 38.04 l
+33.40 24.66 l
+33.40 4.69 l
+33.40 -14.00 l
+33.40 -26.20 l
+33.40 -33.22 l
+33.40 -38.62 l
+33.40 -43.08 l
 o
-72.40 79.64 2.70 c p1
-105.80 110.37 2.70 c p1
-139.20 153.47 2.70 c p1
-172.60 197.49 2.70 c p1
-206.00 227.24 2.70 c p1
+72.40 92.57 2.70 c p1
+105.80 127.26 2.70 c p1
+139.20 167.37 2.70 c p1
+172.60 205.41 2.70 c p1
+206.00 230.07 2.70 c p1
 239.40 234.76 2.70 c p1
-272.80 222.77 2.70 c p1
-306.20 201.66 2.70 c p1
-339.60 181.68 2.70 c p1
-373.00 169.34 2.70 c p1
-406.40 168.54 2.70 c p1
+272.80 220.76 2.70 c p1
+306.20 194.56 2.70 c p1
+339.60 161.34 2.70 c p1
+373.00 122.72 2.70 c p1
+406.40 79.64 2.70 c p1
 0.00 0.00 450.00 300.00 cl
 0 0 0 srgb
 0.75 setlinewidth
@@ -175,30 +175,30 @@ o
 1 setlinejoin
 10.00 setmiterlimit
 np
-59.04 92.50 m
-0 125.38 l
+59.04 90.89 m
+0 116.15 l
 o
 np
-59.04 92.50 m
+59.04 90.89 m
 -7.20 0 l
 o
 np
-59.04 134.29 m
+59.04 129.61 m
 -7.20 0 l
 o
 np
-59.04 176.09 m
+59.04 168.33 m
 -7.20 0 l
 o
 np
-59.04 217.88 m
+59.04 207.04 m
 -7.20 0 l
 o
 /Font1 findfont 12 s
-41.76 92.50 (4.5) .5 90 t
-41.76 134.29 (5.0) .5 90 t
-41.76 176.09 (5.5) .5 90 t
-41.76 217.88 (6.0) .5 90 t
+41.76 90.89 (3.0) .5 90 t
+41.76 129.61 (3.5) .5 90 t
+41.76 168.33 (4.0) .5 90 t
+41.76 207.04 (4.5) .5 90 t
 np
  59.04 73.44 m
 360.72 0 l
@@ -285,19 +285,19 @@ o
 1 setlinejoin
 10.00 setmiterlimit
 np
-59.04 92.50 m
+59.04 90.89 m
 360.72 0 l
 o
 np
-59.04 134.29 m
+59.04 129.61 m
 360.72 0 l
 o
 np
-59.04 176.09 m
+59.04 168.33 m
 360.72 0 l
 o
 np
-59.04 217.88 m
+59.04 207.04 m
 360.72 0 l
 o
 np
diff --git a/lab3/figures/assignment2-added-kernels.png b/lab3/figures/assignment2-added-kernels.png
index 720b59b3e4519c7c7fd616cd49fa68b3e274672b..24f60e45e208c5e6a05a7c4b94d10c480a7e39a5 100644
GIT binary patch
literal 5351
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
E0J}yjiU0rr

literal 5171
zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1V4T3g%)r3l`ug1}1_p+u0X`wF3?N{|z>vmZ
zWyN5X#$YvpA#Ix#1A`Tap9T`MO0!CvV3oGbYQi?F3AfY0O4F<u($W~xKr-9Xwrxw>
zb~|m`{|QzM6Vezaq*+avkTzl4gbCYjPuTW<!tL7=ZvWqw#;`5TYTE>>ZMSc4yZwLL
z|83j;-`@8B|K-b<Z%?qgJt6J(wlt8!+qZB3|Nnnm+W*@V!1CMv{|5=&n#AkDz`(#+
z;1OBOz`%DHgc*<LuSj8F5H|62aSW-L^L8$G_2OfqZ6DKe)n6XXs_L8@7o`1inf9z}
zpKks6KR>MPbVf>Z!^4_0mLK-|zX=uimBz9@-K}B98U+@IX}g$G<_736H6{sih;%zF
zh+ttlswAKx*66U2gQd$=fvQq1XS++!Y~r7PnDzIA|KIcHRd3&s-rBv#F6Fv^aC}PN
z+3v09H@*2+!+2CE;dRp9H(nd_4ylTGx2)|hJ+toLl~W&oUC#aXQGToT^Zw0mUX}aj
zhZlzQds*7oaD|`Vyn26qxSsa^zv(+aJWl?5>Df!SHUDd(|NYOmUs`#)Vw>JIyWRiZ
z=axN}n`XUdS&3>*jA_<Vx%ubAGvod}EZ+Iy)kco+)2rRD`&VxM_Ve=Ah@X`gUftLc
z@$}uk?A^<XB<epuxiz&Yy}keYI@_vsZ@9(7r=0)$d!gJC*40xl#nfy4d;ah5kCT7*
zanE0ON}GFMrB>b9tmWY+jvckybxmdctSM=Gp8VQ+{$cX-xQ8j0@iF`N#e6s()mN}}
z&rh3x|IxQfgzaKGL-qdrSnrZwC1|F1?Vf2^sd4bT_p_@4x4!@T_|wg8&fMbL*XLL5
zQi@n>y7lLEQ@^8?r@jW?U0L__`PIHh+jXbizq>T<>OcLg>_f+opV1c7TgUwE?dtA?
zt$G`qmcL&2{dD=)|Nmw@n|t`?wurYcZk0y94amO#Evz+v<E_Ur4<A)|YF_(#KDWKR
zzUyt)#(T?Ze%{{RJ0&~ia?(%!%Bu_4{4<<pf9|U3u_A32-g%3i*F1Rnz~b6#{?&gY
zc4Tf`l~@}1HtWA<!Ti0od(N-hr@t@cTT8e0x3j0dyY7f;k2rXFYQ)p*y7;f{IUB<~
ze!pB>xq+WAh_!#Va==;j<KK^OoTa7_vDSOd<;!1R+0W%GTsuj(JJdX+Z_`Vy?_Xb^
z-+nXvzPbDD=Hv1IqWV6*PJZ$*$^Gw&e-V{YU_HL!KUPa8{%v!=$2pURi5Dq197;+}
zdAdZ%+pI66IZ2Si?Wom>D@_MCBy=53@YoQz@r+@j$!<Q4Yf33cuie`exN*w1|FtQh
z2FG-k&TdN56^tosY41ro8*S)0C+*ha*4t8PfjSy-tA3?BXGw~BXa24~cC(WAx~LiV
zQ?C^PyEHY#RDS$Dxykv*93RE}=GL1_B4$YzvXwC(*6mU~_2crd?C{eoBBXBrKOMA}
zUo2~zNnTe|(pe5W>Dl~Imn3x_PHXeM*ciA`<iYt%K08;fRZd%4t8}#Mh`jBL|9)XB
zrv+}jwEh20m(_Y~=Pw%nUG}0S$(1c#czuKfS6`X--(@dYRIa^tu63=ozW(iuMem7t
z&da;Db|s3tt-0fS?VZIo{<Nc+D$Q@|#dr2)Z&yg#YgaM%)9d9o3uTw&{a<cvy6xD(
z$n2XBPHMd2iZA>A_HeR)dPek`j$8hcds0PKOV@Ny70Y<KdftV98r-JGvSzIb?b~>u
zbp6>w(;C^oto)D~Ua$2gbG=V_Yhmd8s&yG#qM~1MeJteM{w%3|wwsvC#tDU|HzpkQ
z{obCjvFOb5Ln%7Z`G>P~?<D=4eMjb0TiLPmiO*gu*QZ^V{!r|Ydj8%q?=Dr*>1hdu
z%P(y-mCM;;am?wMuG1o`=sO_>8^1lh@am`8>2-3hk3uG_Ii=<vC9zR!{k}RI>z&5R
z?`%15{hwmGFXY>_U5BRMjn%x~TfJk}<O{{oy)$>O-2WrDv-JKveU`Z`adV!0^^I%n
zY}j>Z)7DcHb*~-Dka(K0;xLOr(%v_AHS1=rNxuK$Zb-PsMsL=vJ8Q2^+jZzr?6rVG
zWs&dGT(>Xt2v!Vwylz&G&zjc96Eaq<n)`1;67Rw_%TBGj+#R@aTK4~?_qIp${(j%D
zaz<_Up`+WD-MB5b=40ht4KX9W)^k}=5}AQ(xL@3D%+h{lsC7;0?fw_hV(UJhtSoDt
zROp@Kd$U|8?s1rIS8EUR0jYCMNnaQ2YjVAtk@+`ob>PMaZ}<PWcj(HFEw37WN#95b
z?-28@i(h!;6yJ(#rIV8yFUIa}So7CkR^+v<m%DE4j#;l{QYA&XuZqr^{dcWYa^jg=
zDd8P=d}m}lna{M0`Non6iC3{pHf1@lc+IC7)^Km(2aYK#Q$utvw10Pc-TpoB;33ib
zDd8s!!@@T#>lEniVs%Pkn>^*kO1q<60g)>^GXhVqh?vl)>dY$M&GveS*ZibPqmY7)
z1sehuZ}r?Lps^-MhwGPf*VRSq-HJW_<@I!_-rx9Q--Yt34}aXUf3EwGIz86@ZS}G_
z6ZE!A|I|Jacu<$~-HWLu((WCld#cW?pTBDMYTbZ$P8qBFIW+HIDcN}EZRefX^}pUd
z(2IFzq_MhBgp>W_<)cO0Ul%8Ry}R0f$DO<-`<J$J*-g~2xS4YKqwckR<xFZ9i*`@E
z>+6_$P3>Bb?%a%?r|Esn(|5D1(o*)D_0Ql_@WWQ?9o*A*Gt7F$q}Uo|(^ncd^=oOX
zsA1MpiR82H{SnViBUeTk-hUn$wdUSQHNPvzcij1#TWxRo>Sf)RD=gl*SCihGrG2og
zn6pr5^{&I#S*L_8uY|Ci+mv>6OT^hJ&424GH%cwt;$Qh`o7~E3orHog-mS;-D_W<Y
zwb(c>UwflN@H~&V%gV2M?Ejy5@M`s3gHu6TV%v@iIl1djTl9`oeAgQJE27&r2Ys2h
z>e@!{(kn@ZQOl<lXzw~IC2?qaUaajjd7j^VzAIjES!+$)cRWh1q9tnOu0yr&Z7df(
zE!(_xW+ubI=Cfg18z;rxRcLI|QenHPdaT>@UDcX>TSeZ4vW9x_`>f5_7*}Q(n|Q5A
zL;9Aaef!My`t_S;uD|}Nc*btoU*C?t$+Zbw^DX${n$sIE^>3`wT9Bu)#igKp`i!g|
z)BY=e173aFs(4S;P3HJ7=UUZktp|5EPQI}6^!4@+9(HkSxSPxWc)r;Awm$#ktZJQ#
z4?Ckzm$g>g|9NNoE%Sj&N&QQ)Z}vtO0ogAN!)_<VGSmxI$-QCMS17rcK3RRC=C#yK
z&pyriShQ!lfzz6A70#z7U)VhBrFW|I%Z(2XURAM8{vI^FMKI~@`uU$`Z(IG^`J?BH
zZdd8s|2HI*&%eK>`&_C2{`)#Ip+U{rEq(8_ziIB@khLkryW~`m?khK!HNPMIoPGYP
zzs<=q{k>AhTMVZKbU)qq@2Q=nnyB`^zwL3_o0dJO(wkbiT1+Wfr#z*ke)=};o_n*L
zpU%4dU#ltAPIQ;|pHmxut~tFi=&Q#Yj_FC!>I+|9O*+!MQA}t1>=WPQYZsa~+ZN8}
zdOq1@jbN+RUEgm_%DWC#itqN<4HqbD;b!_7w=iXA(S_BjhE^5*nakWoS8hq(D85H_
z<FTnLO3ZI^_X&C*WMN|Cx?^G3T;46rabb09r*+@d8m7jRXTRL|G^I@EThrsd<e9S_
z5=sia$|vuA@Iy@dB@5FkZ{?#shSO$pvYhc($eVn^zjdX$fW&<t|6f53xB8C8eYn-1
zd^N6D-}hzSCh?q*HJVTN?3bJUpz|Hq^Se1|jvLj!wYs$JI9UDDdcOIIM-tgj4;r>h
zzv^#xd!{|-$HD-RE}6oHk{@Pnlb)VynVX>WC|XB2K4NM3$_~lo&~~@Watg9Hef;%Z
zGmj_fR~!>vvRO}QX@oX^+}A>#vX++-n<KtxDGDa>-k0~@bSLka$>l&-jkghRSdZ6e
z&8fUl8@2OpfX>^4Zu>W^TEtSsxHx`ecmTsrk0TPVf4;7qp5&{&efGgLE3<fz=@xEl
zZa+Nu`}N@iRtXyyJ)Zhbt@@y0?86UR;w!6zZ{OQ}yQx~MtYu{*&%Nfvh*`h)TweXe
zf$e=`^@5q2dghmn4^0Jyp<;7+O?T->-}5KKcFlgndftMwHu1wd{aO#BV@d8S7%uEQ
zbTBib(RzMd=7ATUFSyTs*^{zVwtMe`6ZtQf?CTBuKRfPMo-)rnwO`ubl=G9Xl>1AC
z)E})2;QVOL+PSND;{I=60{+>4NWW_@d^D(5dht!(X_xwr#%;KGTjJ}Ump^3}Ub>s2
zFHt1Dxav<S%e<C2gDEbIJ9`6F!%ENW{eDF0Xq4rI#}PkH9<!dE$+;dJ>4{0E#cui)
zLQzZh27z4cFOq$S_5BaA?1?T$%o8Hs1zh#L$oKg96l<xjrCc2mSG)2m?pGH!*Mw_4
znF_Mnz)NRi(eBFc%a-2KUb_2a+=rBnD(^Uqmfle*Ofhqd*2$0(Jg_1ne^#dDMzDS1
ziqjIBmx7X{nU<JNH%H=^ODO>&f`?Z`BpT~R8G`~N;dj!>FdtCT$O+ML5D+}NE8>fn
zrrXi1*_nk9M{9<aZ?K5wHq)Ax!Nr&mrBk(3d~uR2i_x!U!5rNgNu?~xH=;HKZfsHF
z;MtvYQTyr*5p8RqS^ecqUe;pO2i1<AI%V#=v4lNZM0<7J4bfG{Rzyf1k2tkaGpx*^
zb15j}<OJ&UZRBBz7SS#)pChuGvoRq+$10VvIO%Hc)JxyyAC${ZGF>0M%T)4>p_<rk
zN9`Lz-ElJyPKj79u9^E^^36t-un$s8qbDDfb57bQzokWX<BO@9XF5v%F)e*--)t+e
zks)~Ap2+x@*HSjHt516}Mcu|UgKtK}Bw>yK?dk(Zgywu&k{k<G$`-X|UFg(2U$$z8
zBu>A|Lv<HaRvhL{3Z8dCdv=C>-__0Yz|MJ^^mXmBl5C?J&0^Z~zpk9{cR{3B-o`&X
z{_UUMH`>4c7a6q1vrzn6;H`hgHx`%olzuenyR`OX0)NPwXD_NlWZJ{GG0G|IwTOKd
zAhXwqZ`si-zMf;-Bb=9leZyGVs&8H1XArgK;GroXrz9k=`Fk~aOT-)Yx6RUfp5KgJ
z67eOAmBC)r?tY!9>a`h@rfmDq^G$)@e2-m<U{bG^2gsxDcNv4eHNSS48S&@Zk*Eu*
z*Iqb*m8}pwefMu+jilFhwPxF>Bd4BpD`*BPg}oI$8^vFB<kYe$3%C4D-{9UKG5J&g
zD8K`i#EwT~J9kIS5l%>5A($=Yb-SLeT0^W^@u1sLrCSRlSen3XaGq}}!r5}|GuNjZ
z*jP-AFy@}I$*6fMYxiD}fQG$mPbU1F&cwB0yQ!qk{~!m(Z`;(GpT=`(9JqHaWy2qD
zM%Ej*XYov{*Id9*9X<KrCw*3tg#2uyh<{5PnBL_2vYp;PWkMaXy=F(JHObG?6xQF|
zZ5eoOdYk`u9a*k(o8Odh7c@RtRPpcFS);GN0@!|cUS@6XetuhL_e5^H&=MDym;%M!
zpIMGr?W%k`yQnWR+I+uB&93y90R`{mwxn^g?DlND^CfjX|I@BY?S_PcLLKwNr~Pz(
zgj^I9EIioy;oNNfYp<Jy>*BAzO}&2YtUmAjcac^ie|{Ahix_I|_|;wfd;h%MOK0AX
zGTIRrsdpnBV&R_8EJwIrPmBK_aP4g8gXwIymt?=3k)S^<V8d*=_Z3l#|J<I;SNCt%
z&*EuZdD>P2g7PsO?`=3YuIjy!cYfRKZ{E$ze^29MYmZ&%P*Aw<*uNl`m=7Nh>s#BG
z2y(5{vQkpgi>P|e*%A8sUEOZAO>1YzS5@sQf0<BV5h22{F7AQ3xAE@f83pgGj_g_}
z$_>}h*)?_g*QSoA{}#>5fBL=ttAfn#?#@!tKfd0q+mp*PH@?zU*z;Ls_n}vei?nTC
zUvAxfXz~9wx{@*1x6ZsCsJ3IB#sY1grqa^Zy6w-;_U64iKW$#LplOBuZ*D=3GLzY=
z_OeGO@vOT%TXBy^ft=s*T0@8{<?}2&^(%KQtW$PBxR@z7O76@a4aq;7gx3{D2fjSa
zn;z{@^xRWk!B%#UsKv2o*Ex?z2px3Ye7Sa6Nr7q7%I*6-KCE1%tn{c!c9OOKqbYv>
zo=x%lTX;f0SFS`~R(#L;^VS`#+npEg`nkS8*^_Pe#O{>dT32?ZXDs5Itozj$aw2s<
zsXR{O`yloDoj1=9>+k;k@TxiQ(ODh)^L2M}9G%5+REquREDzmjyEotZ{5Jm1+KG2%
zM6SxdJLIXyadei4#<blF*YCD3x_8Iu&mXh2+igj{Dk87fWz^r@|7K2ba^9+af*RLc
zoHoAW{=a%(aZ>U86sL`9m({~6t|vNeR4d+iR7tMObfVnGxQZiRWWcOfk$&HDwnu4P
pbNO{-RbTQ)=Y{Rm9+rCe|JR4ENX0o{)`JHBJYD@<);T3K0RW;m+=>7I

diff --git a/lab3/figures/assignment2-distance-kernel.png b/lab3/figures/assignment2-distance-kernel.png
deleted file mode 100644
index 8625413234579c851c3ae0920b0403be5d8c1c0d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5481
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
YU#`FzQP|KI4;nJ{boFyt=akR{02(-Q@Bjb+

diff --git a/lab3/figures/assignment2-multiplied-kernels.eps b/lab3/figures/assignment2-multiplied-kernels.eps
index 79e5f84..6d8f3de 100644
--- a/lab3/figures/assignment2-multiplied-kernels.eps
+++ b/lab3/figures/assignment2-multiplied-kernels.eps
@@ -144,28 +144,28 @@ bp
 1 setlinejoin
 10.00 setmiterlimit
 np
-72.40 234.76 m
-33.40 -3.01 l
-33.40 -3.45 l
-33.40 -11.87 l
-33.40 -28.72 l
-33.40 -38.40 l
-33.40 -32.19 l
-33.40 -20.21 l
-33.40 -10.74 l
-33.40 -4.96 l
-33.40 -1.57 l
-o
-72.40 234.76 2.70 c p1
-105.80 231.75 2.70 c p1
-139.20 228.30 2.70 c p1
-172.60 216.43 2.70 c p1
-206.00 187.71 2.70 c p1
-239.40 149.31 2.70 c p1
-272.80 117.12 2.70 c p1
-306.20 96.91 2.70 c p1
-339.60 86.17 2.70 c p1
-373.00 81.21 2.70 c p1
+72.40 147.70 m
+33.40 7.87 l
+33.40 23.34 l
+33.40 28.86 l
+33.40 21.35 l
+33.40 5.64 l
+33.40 -9.97 l
+33.40 -21.47 l
+33.40 -30.61 l
+33.40 -40.72 l
+33.40 -52.35 l
+o
+72.40 147.70 2.70 c p1
+105.80 155.57 2.70 c p1
+139.20 178.91 2.70 c p1
+172.60 207.77 2.70 c p1
+206.00 229.12 2.70 c p1
+239.40 234.76 2.70 c p1
+272.80 224.79 2.70 c p1
+306.20 203.32 2.70 c p1
+339.60 172.71 2.70 c p1
+373.00 131.99 2.70 c p1
 406.40 79.64 2.70 c p1
 0.00 0.00 450.00 300.00 cl
 0 0 0 srgb
@@ -175,35 +175,42 @@ o
 1 setlinejoin
 10.00 setmiterlimit
 np
-59.04 99.51 m
-0 138.57 l
+59.04 74.20 m
+0 155.27 l
+o
+np
+59.04 74.20 m
+-7.20 0 l
+o
+np
+59.04 100.08 m
+-7.20 0 l
 o
 np
-59.04 99.51 m
+59.04 125.96 m
 -7.20 0 l
 o
 np
-59.04 134.15 m
+59.04 151.84 m
 -7.20 0 l
 o
 np
-59.04 168.80 m
+59.04 177.71 m
 -7.20 0 l
 o
 np
-59.04 203.44 m
+59.04 203.59 m
 -7.20 0 l
 o
 np
-59.04 238.08 m
+59.04 229.47 m
 -7.20 0 l
 o
 /Font1 findfont 12 s
-41.76 99.51 (-2) .5 90 t
-41.76 134.15 (-1) .5 90 t
-41.76 168.80 (0) .5 90 t
-41.76 203.44 (1) .5 90 t
-41.76 238.08 (2) .5 90 t
+41.76 74.20 (-2.6) .5 90 t
+41.76 125.96 (-2.2) .5 90 t
+41.76 177.71 (-1.8) .5 90 t
+41.76 229.47 (-1.4) .5 90 t
 np
  59.04 73.44 m
 360.72 0 l
@@ -289,23 +296,31 @@ o
 1 setlinejoin
 10.00 setmiterlimit
 np
-59.04 99.51 m
+59.04 74.20 m
+360.72 0 l
+o
+np
+59.04 100.08 m
+360.72 0 l
+o
+np
+59.04 125.96 m
 360.72 0 l
 o
 np
-59.04 134.15 m
+59.04 151.84 m
 360.72 0 l
 o
 np
-59.04 168.80 m
+59.04 177.71 m
 360.72 0 l
 o
 np
-59.04 203.44 m
+59.04 203.59 m
 360.72 0 l
 o
 np
-59.04 238.08 m
+59.04 229.47 m
 360.72 0 l
 o
 np
diff --git a/lab3/figures/assignment2-multiplied-kernels.png b/lab3/figures/assignment2-multiplied-kernels.png
index db758388e19c1ba093067d54535911f3a0f750b5..7cb2acce4b8ce8b56ea6bcd8e36663b8dd50fdb6 100644
GIT binary patch
delta 4799
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
E0HrlafB*mh

delta 4437
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

diff --git a/lab3/figures/assignment2-distance-kernel.eps b/lab3/figures/assignment2-physical-distance-kernel.eps
similarity index 99%
rename from lab3/figures/assignment2-distance-kernel.eps
rename to lab3/figures/assignment2-physical-distance-kernel.eps
index 8390e32..656b76e 100644
--- a/lab3/figures/assignment2-distance-kernel.eps
+++ b/lab3/figures/assignment2-physical-distance-kernel.eps
@@ -131,7 +131,6 @@ dup length dict begin
   end
 /Font5 exch definefont pop
 %%EndProlog
-0.00 0.00 450.00 300.00 cl
 %%Page: 1 1
 bp
 /bg { 1 1 1 srgb } def
@@ -1230,7 +1229,8 @@ cp p1
 0.00 0.00 450.00 300.00 cl
 /Font2 findfont 14 s
 0 0 0 srgb
-239.40 265.45 (Gaussian distance kernel) .5 0 t
+125.01 265.45 (Gaussian ph) 0 ta
+-0.280 (ysical distance kernel) tb gr
 /Font1 findfont 12 s
 193.05 18.72 (Ph) 0 ta
 -0.360 (ysical distance) tb gr
diff --git a/lab3/figures/assignment2-physical-distance-kernel.png b/lab3/figures/assignment2-physical-distance-kernel.png
new file mode 100644
index 0000000000000000000000000000000000000000..c676b28aa4fbb34267ba0f58ee88133868557ce4
GIT binary patch
literal 5732
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

literal 0
HcmV?d00001

-- 
GitLab