Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor improvements #18

Merged
merged 2 commits into from
Aug 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 0 additions & 18 deletions components/MyFooter.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,3 @@
// import { Col, Row } from "antd";
// function MyFooter() {
// return (
// <Row
// style={{
// textAlign: "center",
// position: "absolute",
// width: "100%",
// bottom: "0px",
// padding: "10px",
// backgroundColor: "grey"
// }}
// >
// <Col span={24}><b>LFortran by LCompilers</b></Col>
// </Row>
// );
// }

import { Footer } from "antd/lib/layout/layout";

function MyFooter() {
Expand Down
2 changes: 1 addition & 1 deletion components/MyLayout.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import MyHeader from "./MyHeader";
import MyFooter from "./MyFooter";
import { Divider, Layout } from "antd";
import { Layout } from "antd";
import { Content } from "antd/lib/layout/layout";

function MyLayout({ children }) {
Expand Down
1 change: 0 additions & 1 deletion components/ResultBox.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { useState } from "react";
import { Button } from "antd";
import { CopyOutlined } from "@ant-design/icons";
import { Segmented } from "antd";
Expand Down
68 changes: 2 additions & 66 deletions pages/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import TextBox from "../components/TextBox";
import ResultBox from "../components/ResultBox";
import LoadLFortran from "../components/LoadLFortran";
import remove_ansi_escape_seq from "../utils/ast_asr_handler";
import src_code_examples from "../utils/source_code_examples";

import { useState } from "react";
import { Col, Row, Spin } from "antd";
Expand Down Expand Up @@ -38,73 +38,9 @@ var lfortran_funcs = {
execute_code: null,
};

var src_code_mandel_brot = `program mandelbrot
implicit none
integer , parameter :: rk = 8
integer , parameter :: i_max = 600
integer , parameter :: j_max = 450
integer , parameter :: n_max = 100
real (rk), parameter :: x_centre = -0.5_rk
real (rk), parameter :: y_centre = 0.0_rk
real (rk), parameter :: width = 4.0_rk
real (rk), parameter :: height = 3.0_rk
real (rk), parameter :: dx_di = width / i_max
real (rk), parameter :: dy_dj = -height / j_max
real (rk), parameter :: x_offset = x_centre - 0.5_rk * (i_max + 1) * dx_di
real (rk), parameter :: y_offset = y_centre - 0.5_rk * (j_max + 1) * dy_dj
integer :: image(j_max, i_max)
integer :: i
integer :: j
integer :: n
real (rk) :: x
real (rk) :: y
real (rk) :: x_0
real (rk) :: y_0
real (rk) :: x_sqr
real (rk) :: y_sqr
interface
subroutine show_img(n, m, A) bind(c)
integer, intent(in) :: n, m
integer, intent(in) :: A(n,m)
end subroutine
end interface


do j = 1, j_max
y_0 = y_offset + dy_dj * j
do i = 1, i_max
x_0 = x_offset + dx_di * i
x = 0.0_rk
y = 0.0_rk
n = 0
do
x_sqr = x ** 2
y_sqr = y ** 2
if (x_sqr + y_sqr > 4.0_rk) then
image(j,i) = 255
exit
end if
if (n == n_max) then
image(j,i) = 0
exit
end if
y = y_0 + 2.0_rk * x * y
x = x_0 + x_sqr - y_sqr
n = n + 1
end do
end do
end do

print *, "The Mandelbrot image is:"
call show_img(j_max, i_max, image)

print *, "Thank you! Hope you had fun!"
end program mandelbrot
`;

export default function Home() {
const [moduleReady, setModuleReady] = useState(false);
const [sourceCode, setSourceCode] = useState(src_code_mandel_brot);
const [sourceCode, setSourceCode] = useState(src_code_examples.src_code_mandel_brot);
const [activeTab, setActiveTab] = useState("STDOUT");
const [output, setOutput] = useState("");
const [myHeight, setMyHeight] = useState("calc(100vh - 170px)")
Expand Down
86 changes: 86 additions & 0 deletions utils/source_code_examples.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
var src_code_mandel_brot = `program mandelbrot
implicit none
integer , parameter :: rk = 8
integer , parameter :: i_max = 600
integer , parameter :: j_max = 450
integer , parameter :: n_max = 100
real (rk), parameter :: x_centre = -0.5_rk
real (rk), parameter :: y_centre = 0.0_rk
real (rk), parameter :: width = 4.0_rk
real (rk), parameter :: height = 3.0_rk
real (rk), parameter :: dx_di = width / i_max
real (rk), parameter :: dy_dj = -height / j_max
real (rk), parameter :: x_offset = x_centre - 0.5_rk * (i_max + 1) * dx_di
real (rk), parameter :: y_offset = y_centre - 0.5_rk * (j_max + 1) * dy_dj
integer :: image(i_max, j_max)
integer :: image_t(j_max, i_max)
integer :: i
integer :: j
integer :: n
real (rk) :: x
real (rk) :: y
real (rk) :: x_0
real (rk) :: y_0
real (rk) :: x_sqr
real (rk) :: y_sqr

do j = 1, j_max
y_0 = y_offset + dy_dj * j
do i = 1, i_max
x_0 = x_offset + dx_di * i
x = 0.0_rk
y = 0.0_rk
n = 0
do
x_sqr = x ** 2
y_sqr = y ** 2
if (x_sqr + y_sqr > 4.0_rk) then
image(i,j) = 255
exit
end if
if (n == n_max) then
image(i,j) = 0
exit
end if
y = y_0 + 2.0_rk * x * y
x = x_0 + x_sqr - y_sqr
n = n + 1
end do
end do
end do

! print '(a)', 'P2'
! print '(i0, 1x, i0)', i_max, j_max
! print '(i0)', 255
! do j = 1, 3
! do i = 1, 3
! print '(i0)', image(i,j)
! end do
! end do
Shaikh-Ubaid marked this conversation as resolved.
Show resolved Hide resolved

do i = 1, i_max
do j = 1, j_max
image_t(j, i) = image(i, j)
end do
end do

print *, "The result is as follows:"
call show_img(j_max, i_max, image_t)

print *, "Thank you! Hope you had fun!"

interface
subroutine show_img(n, m, A) bind(c)
integer, intent(in) :: n, m
integer, intent(in) :: A(n,m)
end subroutine
end interface
end program mandelbrot
`;


var src_code_examples = {
src_code_mandel_brot: src_code_mandel_brot
};

export default src_code_examples;