EngLab: Μαθηματική Εφαρμογή από το ΤΗΜΜΥ του ΑΠΘ

Η ανακοίνωση που ακολουθεί, προέρχεται από μια ομάδα φοιτητών του τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του ΑΠΘ οι οποίοι προχώρησαν στο πρώτο release ενος open-source cross compile προγραμματος σε στυλ Matlab.

Έγινε το release 0.2alpha του open-source προγράμματος EngLab.

To site μας βρισκεται στην τοποθεσια http://englab.sourceforge.net . Μπορείτε να κατεβάσετε το EngLab από την τοποθεσία

https://sourceforge.net/project/showfiles.php?group_id=206384

Το EngLab είναι μία cross platform (Linux και Windows) μαθηματική εφαρμογή με σύνταξη παρόμοια με αυτή της γλώσσας προγραμματισμού C++. Σκοπός μας είναι να χρησιμοποιηθεί τόσο από μηχανικούς, όσο και από άλλους χρήστες με μικρή προγραμματιστική εμπειρία. Την πρωτοβουλία ανέλαβαν μία ομάδα φοιτητών πρίν από περίπου ένα χρόνο, όταν και άρχισαν την κατασκευή του.

Στόχος μας είναι να δημιουργήσουμε μία εύχρηστη πλατφόρμα υπολογισμών και προσομοιώσεων, που σχετίζονται με διάφορες επιστημονικές περιοχές. Συγκεκριμένα, έχουμε υιοθετήσει την φιλοσοφία του Matlab, όσον αφορά στη δομή του προγράμματος και τη φιλοσοφία της C++ για την όσο το δυνατόν δομημένη σύνταξη της γλώσσας του.

Όπως και στο Matlab, υπάρχουν διάφορα toolboxes (πακέτα συναρτήσεων που αφορούν ένα επιστημονικό πεδίο), τα οποία στηρίζονται σε open-source βιβλιοθήκες.

Η διανομή του προγράμματος γίνεται με τον εξής τρόπο: υπάρχουν δύο βασικά releases του EngLab, το EngLab Console και το EngLab GUI. Το EngLab Console είναι προορισμένο για εκτέλεση στην κονσόλα (είτε του Linux είτε των Windows). Αντίθετα, το Englab GUI είναι ένα Graphical User Interface για το Englab, το οποίο στηρίζεται στην open-source βιβλιοθήκη δημιουργίας γραφικού περιβάλλοντος wxWidgets 2.8, παρέχοντας περισσότερη ευχρηστία και επιπλέον λειτουργίες σε σχέση με την έκδοση της κονσόλας. Να σημειώσουμε ότι το EngLab GUI είναι ένα αυτόνομο πρόγραμμα, δηλαδή δεν απαιτεί την έκδοση της κονσόλας για να εγ!
κατασταθεί και να εκτελεστεί.

Εκτός από τα παραπάνω, τα toolboxes διανείμονται ως ξεχωριστά πακέτα, τα οποία μπορούν να εγκατασταθούν οποτεδήποτε μετά την εγκατάσταση κάποιας από τις δύο βασικές εκδόσεις. Επιλέχθηκε αυτός ο τρόπος διανομής των toolboxes, διότι όπως είπαμε παραπάνω τα toolboxes κάνουν χρήση open-source βιβλιοθηκών, οι οποίες πρέπει να εγκατασταθούν πρίν την εγκατάσταση ενός toolbox που τις χρησιμοποιεί. Έτσι, για να μην είναι αναγκασμένος ο χρήστης να εγκαταστήσει μία πληθώρα πακέτων για να εκτελέσει το Englab, του δίνουμε τη δυνατότητα να εγκαθιστά πακέτα και toolboxes κατά βο!
ύληση.

Για την ώρα, μόνο η έκδοση EngLab Console είναι διαθέσιμη για τα Windows, ενώ για τα Linux είναι διαθέσιμες και οι δύο.

Μέχρι στιγμής το EngLab υποστηρίζει:

– Δήλωση μεταβλητών 16 διαφορετικών τύπων (int, float κτλ..)
– Δήλωση μεταβλητών με απεριόριστο πλήθος διαστάσεων
– Δομές επανάληψης (for, while …)
– Αριθμητικές, λογικές και δυαδικές πράξεις μεταξύ μεταβλητών
– Δήλωση σταθερών (pi, phi …)
– Γραφική διαχείριση των τιμών μεταβλητής οποιασδήποτε διάστασης (EngLab GUI)
– Παραμετροποιήσιμο περιβάλλον (EngLab GUI)
– Editor για σύνταξη αρχείων .eng (EngLab GUI)
– Ιστορικό εντολών για τα τελευταία 5 sessions
– Απευθείας εύρεση μεταβλητών, σταθερών και συναρτήσεων (EngLab GUI)
– Πρόσφατα αρχεία που ανοίχθηκαν μέσω του EngLab (EngLab GUI)

Όσον αφορά τα toolboxes έχουμε υλοποιήσει μερικώς τα παρακάτω:

– Πακέτο με τις βασικές συναρτήσεις της C (τριγωνομετρικές, υπερβολικές τριγωνομετρικές, ..)
– Πακέτο με κάποιες συναρτήσεις στατιστικής
– Πακέτο με συναρτήσεις μετατροπής τύπων μεταβλητών

Τα παραπάνω toolboxes διανέμονται με τις βασικές εκδόσεις του EngLab, αφού δεν απαιτούν κάποια επιπλέον open-source βιβλιοθήκη. Τα επιπλέον toolboxes που έχουμε υλοποιήσει είναι:

– Πακέτο με συναρτήσεις για διδιάστατους πίνακες (ορίζουσα, αντίστροφο, ανάστροφο …) Το πακέτο αυτό στηρίζεται στην open-source βιβλιοθήκη NewMat10.
– Πακέτο με συναρτήσεις για επεξεργασία εικόνας που βασίζεται στην open-source βιβλιοθήκη CImg.
– Πακέτο με συναρτήσεις για επεξεργασία εικόνας που βασίζεται στην open-source βιβλιοθήκη OpenCV.

Επίσης υλοποιούμε,

– πακετο για την οπτική αναπαράσταση δεδομένων (γραφήματα κτλ)
– πακέτο συναρτήσεων που αφορούν διαχείριση πολυωνύμων, εύρεση ριζών, υπολογισμού ολοκληρωμάτων, παραγώγων, ειδικών συναρτήσεων κ.α., τα οποία θα διαθέσουμε σε επόμενες εκδόσεις.

Το μόνο μειονέκτημα είναι ότι ο αριθμός των ατόμων της ομάδας μας είναι τέτοιος, ο οποίος δεν μας επιτρέπει την γρήγορη ανάπτυξη του EngLab. Ως εκ τούτου, κάθε βοήθεια προς αυτή την κατεύθυνση είναι ευπρόσδεκτη!

Μπορείτε να μας βοηθήσετε με τρεις τρόπους:

– Με την αναφορά τυχόν bugs που παρατηρείτε κατά την εκτέλεση του προγράμματος. Αυτό μπορεί να γίνει στην εξής διεύθυνση

https://sourceforge.net/tracker/?group_id=206384&atid=997443

– Επίσης μπορείτε να δηλώνετε κάποια επιπλέον features που θα θέλατε να ενσωματωθούν στο EngLab, ώστε να βελτιωθεί η χρηστικότητά του. Νέα features μπορείτε να δηλώσετε εδώ:

https://sourceforge.net/tracker/?group_id=206384&atid=997446

– Ο δύσκολος τρόπος (!) είναι να γίνετε developer στο EngLab και να μας βοηθήσετε στην ανάπτυξη του κώδικα. Αυτο απαιτεί γνώση της γλώσσας C++ και …. μεράκι!

Αν έχετε διαβάσει ως εδώ σημαίνει ότι είστε σε καλό δρόμο!

Η λίστα επικοινωνίας του EngLab για οποιεσδήποτε απορίες είναι η englab-support@lists.sourceforge.net .

Επίσης διαθέτουμε τόσο online documentation όσο και σε μορφή PDF. Το documentation είναι διαθέσιμο μέσω της σελίδας

http://englab.sourceforge.net/documentation.html

_____________________________________________

Η ομάδα ανάπτυξης του EngLab:

Bugfest Team:

Σερένης Χαράλαμπος – Διδακτορικός φοιτητής του ΤΗΜΜΥ
Τσαρδούλιας Εμμανουήλ – Διδακτορικός φοιτητής του ΤΗΜΜΥ
Γαββές Ευστράτιος – Διπλωματούχος ΤΗΜΜΥ
Παραστατίδης Νικόλας – Προπτυχιακός φοιτητής ΤΗΜΜΥ

Επίσης βοήθησαν:
Γκέκας Χρήστος – Διπλωματούχος ΤΗΜΜΥ
Βογιάνου Θανάσης – Διδακτορικός φοιτητής του ΤΗΜΜΥ

Social Media Auto Publish Powered By : XYZScripts.com