From 388008f8a38213d82753af7c9047cb25d0055f25 Mon Sep 17 00:00:00 2001 From: Antonio De Lucreziis Date: Wed, 22 Jan 2025 00:23:04 +0100 Subject: [PATCH] chore: some stylistic updates --- bun.lockb | Bin 51916 -> 52725 bytes index.html | 15 +++++- package.json | 2 + public/about.txt | 6 +++ public/android-chrome-192x192.png | Bin 0 -> 4540 bytes public/android-chrome-512x512.png | Bin 0 -> 14751 bytes public/apple-touch-icon.png | Bin 0 -> 4252 bytes public/favicon-16x16.png | Bin 0 -> 339 bytes public/favicon-32x32.png | Bin 0 -> 650 bytes public/favicon.ico | Bin 0 -> 15406 bytes public/favicon_io.zip | Bin 0 -> 41370 bytes public/site.webmanifest | 1 + src/Primal.tsx | 79 +++++++++++++++++------------- src/main.tsx | 12 ++--- src/style.css | 33 ++++++++----- 15 files changed, 95 insertions(+), 53 deletions(-) create mode 100644 public/about.txt create mode 100644 public/android-chrome-192x192.png create mode 100644 public/android-chrome-512x512.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 public/favicon_io.zip create mode 100644 public/site.webmanifest diff --git a/bun.lockb b/bun.lockb index 23a36c55388797efb0ddeb669fa55abe69efcb25..74a5a2702f7bea2e86ea405cd12d69bbb6065c53 100755 GIT binary patch delta 9367 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 CSd6Uz delta 8688 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 z zFd7&KxB&ia908OAV}OysD1hIJJpn(!2>1hhLCpZB0rkL4pca@6OaZ0>HNbSB8khuB zarX}*vj%to_zlnjJO(@pya2oi`~lbx>;tv~Cx8P0e}WAM_$|oq{xqt6pvIkooE3nB z_>VLGZ;SsJ<3CLK4=E`TNCMzhDGo>m@T*En0Qv#=naqE{N%24|5DoAr5q~na0WH8B zU@kBlxDRLs_*?Wz{s?~xnWuq&0iFSzz(!y_!0*|4z0RH;nxw4JEfB~SZ4-W9X$(9-@siioWmx-5$?P4E<)2fyl zH(MVK8>>#$dOH;x2G0EGY#$Ynf{ zYE9+|@Zj3O$_|fUv$zp&Lw%OK<@KY$M}Ut5GncW>M1b4q`s|6xfZmSFc_8*oA;9u1 zpdR2!&IAepF0W^|vcQ-N@P=9n@ZR8ku>@!Wcu(BER~BmJ%zAz?@`b=kU;HbY4y@b|e`IiOZ;>Qu$-{%>(Sn|R z*d|vCy7+Lr{HdTd>uq6r6rtdb^63lKzBbKAWLj;x)^z-#OP%XO%Z#fm`RjZaMdV|@mhb?-2*qNU4!|OkI74*Qy+66lk&aW*sd2960N5ry`;^P%> zd%QJzaKyLi?6ldZzm&Z-diZ4Qg+Fz)e6`A=)%ak-0rcXA&~QE8l5=JG$iSeMPH)rF z9&}}cIa?3Vl(%2LT=-b$4X=V8!m%ejm1Fz<%rI}w6FtbW(VV5ne7>!2YtGzt>ZVsg zj|x@2Hh<_n!&jd5)&$YR8#Cm#o^*VpIa`m-40wC*g3kL6O_D`*y4A+s)?*qMF8pct z0oxyQeMFkohNY0ClK~X?h&fA%g5VsFcAOay9ufS6S3!@Hn7{ijee|j9I&Y0k6CVi; z*W)T_L)vSe_w5B|>Rl(BXwxI+Y&{V3vUIsP{xcc>lj{n4sHXl{{=Q7#IiGlIrkm&j zn(DEg-|TOmb=fZtcI!>`=+A*+^;HWB5_WlO_L?YVlQ~=u7bV}Bm?0kiONUqCw23Bf zGH2=Wr70ml7<)za{;O9(k3fC8t?61v!CznW*7(y?n?keIkd@?F>+|Hyn&3f8y!Coe z%ND$HeD@2Zr+8~h0_g|LN{@n___%f7U44tc@hZ#>q_kFZ_Ub@MiFx=1I|dvTTi)<0 z=z+EDvNxXV*!=7=Z%s@HHKVB>huZu4j-`*zI$JM`<{WF5H9bxG@tH-9EzO#4v*zpz zp*LF1axn{5$5fb)$*hYJ)7Q%)O|t&PpVQ6-9`WdAa=@_s|~ zjYiWF|ED3EFyR-?bYpvnPnz_qnMSqsj?T8GNqT&$_`}&llTSQ$dmq6Wq;9jJSJ&)G+x zQzw{Z&6V_!V8-UD%TDZmY^5v=VXC2#VYCr_>oLUV&9A(F=FE+cv`MDt@|WVvTW#u9 z(I*#k`|&h_#D4T;gwymu+&SNQic1vV;%a+l zyFL_sxZUy-eV&h^J($N=QFMAoNMx2YDO&js^Gq(C+Oyxfab3#%(|J7_qsgBLOa4k&0BrJ}(5Md{3}4Hm9PKI2~b-I#>1Sw3ihjmayb`9L#WF;w5#)Z7*+ z-#$03JMLcHY2iP;;kjSMsY(O5G+YmjepB|yf2MyFJJUOUR6Jd2H)|^ru7_0rkSkt2 zTlemDuioGFCu^j`)+-1xD@l;d;_#LJPVe{WRnsNH8gU9)z!R>~xl;;Of%5HPG9$J-6fN5` TgAVQwqrs1EKD_v`=G6ZJg=Mkz diff --git a/index.html b/index.html index 8996609..88d22a1 100644 --- a/index.html +++ b/index.html @@ -4,9 +4,22 @@ + + + + + + + + + + - Ricerca Operativa / Programmazione Lineare + Algoritmo del Simplesso | PL | Ricerca Operativa diff --git a/package.json b/package.json index 2f9ce6a..251f3d1 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,8 @@ "typescript": "^5.0.0" }, "dependencies": { + "@fontsource-variable/jetbrains-mono": "^5.1.2", + "@fontsource-variable/open-sans": "^5.1.1", "katex": "^0.16.20", "preact": "^10.25.4" } diff --git a/public/about.txt b/public/about.txt new file mode 100644 index 0000000..3720f4a --- /dev/null +++ b/public/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following font: + +- Font Title: Open Sans +- Font Author: undefined +- Font Source: https://fonts.gstatic.com/s/opensans/v40/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsg-1y4nY1M2xLER.ttf +- Font License: undefined) diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..a38854d6ee6c6b8ed5685ef31020bbab034ddc75 GIT binary patch literal 4540 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 literal 0 HcmV?d00001 diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..a2c7eb03e0fcc30b76feaad8393a05e6165725f7 GIT binary patch literal 14751 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 literal 0 HcmV?d00001 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..126f3bdc1ac6da6085fae5756e8b631ae8e50a8b GIT binary patch literal 4252 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 UYJNQH*8yNfq_#J#SFp* z{Qb_raBmI+!_7_x2AviL289G74fyj7sBsohV;2Jhs{jLodKm+Qd=vu%6B_{o{(NO% zxI2@9;Z`>T1D6~FgGL1dgOoo510xgGpu+URleG*C$3qwx1dJIN%oZ{*@N44@W9(t@ z{sIHT?S2M^$152aL~IxsRC0i>@CCYp8N)FAf%yG71H+xEz_6IXz`(-Gz+kbAfkD`k z$UsC^1`5!Jiy0Vrlo=SrT?iQPY%>GH6;SHN0<;?$7^Hy#iUcsd@c9k{!<$3c4FH7) luNoO%z!MKt$xIYwX8`bdcE5q_s7n9<002ovPDHLkV1j4VeeD1M literal 0 HcmV?d00001 diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..903a97dda647b5769b6643914c3fffee83d54954 GIT binary patch literal 650 zcmV;50(Jd~P)63U0i%gg@t_292?z;z6%jlNA_yWb=s^&dQ*;zBE+hvp;)eJS zc<|tU72+uw6St_4s6i!T+>`bzd)hGvr@CjRr#)EkV0x>~jm6Yy05Pq{i0 zt+0GQEZzcDHNJs^5ttZ+0Rg|dmIqF*ffWZ}(I#DARe^zn5xBb!-rRKeRLi^_3butC z1zh^Y>CXiZ_rma5q35dhta@0Y9BI z-|ePd5f<@Jz&q#Had>(T9;=`DVs7%>n6pahw@bmeS#C=Bwn}gUp6cmu$_53cvC4=3 zJYYNt&0F1CkZ7?IDV~6*+T7-E@4(P07`?84O?#n{>Z)KV_Q+(1WRWu}$rqu%BLV`y zUa-t$~n8I6+C kyNtqYO;hn&(kn^-1U0n$ZAXxSZ2$lO07*qoM6N<$g33WEIRF3v literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c011f74567d965efa78d8891cd8531a2748b75d1 GIT binary patch literal 15406 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 a#zRm0hwz&iaB<_0i10HH1dmC_@BRzVYM$r- literal 0 HcmV?d00001 diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/src/Primal.tsx b/src/Primal.tsx index a3636a1..7e3583f 100644 --- a/src/Primal.tsx +++ b/src/Primal.tsx @@ -1,3 +1,4 @@ +import { useEffect, useState } from 'preact/hooks' import { MobileScrollable } from './components' import { Katex } from './Katex' import { fillDot, drawSemiplane, drawSimpleArrow, strokeInfiniteLine } from './lib-v2/canvas' @@ -83,42 +84,54 @@ const PrimalStep = ({ } export const Primal = ({ input }: { input: ProblemInput }) => { - // const steps: Step[] = [{ B: input.B }] - - const timerStart = performance.now() - - const problemOutput = computePrimalSimplexSteps({ - A: input.A, - b: input.b, - c: input.c, - B: input.B, - maxIterations: 10, - }) - - const timerDelta = performance.now() - timerStart + const [problemOutput, setProblemOutput] = useState | null>(null) + const [timerDelta, setTimerDelta] = useState(null) + + useEffect(() => { + const timerStart = performance.now() + const output = computePrimalSimplexSteps({ + A: input.A, + b: input.b, + c: input.c, + B: input.B, + maxIterations: 10, + }) + const elapsedTime = performance.now() - timerStart + + setProblemOutput(output) + setTimerDelta(elapsedTime) + }, [input]) return (

) } diff --git a/src/main.tsx b/src/main.tsx index 17840bb..688f844 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,3 +1,6 @@ +import '@fontsource-variable/jetbrains-mono/index.css' +import '@fontsource-variable/open-sans/index.css' + import { render } from 'preact' import { useState } from 'preact/hooks' import { parseSafeProblemInput } from './parser-problem' @@ -58,20 +61,17 @@ const App = () => { return ( <>

- Ricerca Operativa / Programmazione Lineare + Ricerca Operativa / PL / Algoritmo del Simplesso {' '} - by @aziis98 + by @aziis98

Questo sito è un progetto per il{' '} corso di Ricerca Operativa{' '} dell'Università di Pisa per visualizzare automaticamente tutti i passaggi dell' - - algoritmo del simplesso primale e duale - - . + algoritmo del simplesso primale.

Visualizzazione

I dati del problema vanno inseriti nel seguente campo di testo nel formato:

diff --git a/src/style.css b/src/style.css index 6d2d043..62c8338 100644 --- a/src/style.css +++ b/src/style.css @@ -30,9 +30,9 @@ h2, h3, h4 { - font-weight: 600; + font-weight: 300; margin: 0; - color: #444; + color: #222; line-height: 1.25; } @@ -50,7 +50,7 @@ font-size: 16px; background: #fff; - border: 1px solid #888; + border: 1px solid #ccc; min-height: 1.75rem; padding: 0 0.25rem; border-radius: 0.25rem; @@ -63,21 +63,24 @@ padding: 0.5rem; - font-family: 'JetBrains Mono', monospace; + font-family: 'JetBrains Mono Variable', monospace; font-weight: 400; color: #333; } button, select { - font-family: 'Open Sans', sans-serif; - font-size: 16px; - font-weight: 400; - color: #333; + font-family: 'Open Sans Variable', sans-serif; + font-size: 14px; + font-weight: 600; + color: #444; + + display: grid; + place-content: center; box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.1); background: #f0f0f0; - border: 1px solid #888; + border: 1px solid #bbb; padding: 0 0.5rem; border-radius: 0.25rem; min-height: 1.75rem; @@ -89,20 +92,24 @@ } } + button { + padding: 0 1rem; + } + p { line-height: 1.75; } pre, code { - font-family: 'JetBrains Mono', monospace; + font-family: 'JetBrains Mono Variable', monospace; font-weight: 400; color: #333; } strong { - font-weight: 700; - color: #444; + font-weight: 600; + color: #000; } small { @@ -113,7 +120,7 @@ @layer components { body { - font-family: 'Open Sans', sans-serif; + font-family: 'Open Sans Variable', sans-serif; font-size: 16px; line-height: 1.75;