eng-calc / CLAUDE.md
System Administrator
Add engineering calculator with multi-mode functionality
5f25c87

A newer version of the Gradio SDK is available: 5.38.0

Upgrade

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

This is a Gradio-based engineering calculator web application that provides multiple calculator modes with advanced functionality. The application serves as a comprehensive calculation tool for engineers, scientists, and developers.

Application Architecture

Core Modes

  • Standard Mode: Basic calculator operations with immediate evaluation
  • Scientific Mode: Scientific functions including trigonometry, logarithms, and advanced mathematical operations
  • Engineering Mode: Specialized engineering calculations with dropdown-based function selection
  • Programming Mode: Developer-focused calculations including base conversions and scripting capabilities

Key Features

  • Infinite precision arithmetic for basic operations (addition, subtraction, multiplication, division)
  • Calculation history and memory capabilities
  • Embedded AI chat interface
  • Unit converters for various measurements and currencies
  • Real-time calculation evaluation

Engineering Functions

The engineering mode includes specialized calculations such as:

  • 3Ph Equivalent Impedance Calculator: Calculates equivalent impedance and line currents for 5-wire (A,B,C,N,PE) electrical systems using Carson's equations and Kron reduction

Development Setup

Dependencies

The project requires the following Python packages:

  • gradio - Web interface framework
  • numpy - Numerical computations
  • pandas - Data analysis and manipulation
  • matplotlib - Plotting and visualization
  • seaborn - Statistical visualization

Installation Commands

pip install gradio numpy pandas matplotlib seaborn

Running the Application

python app.py  # Main application file (to be created)

Code Structure

Mathematical Operations

  • Implement infinite precision arithmetic using Python's decimal module for basic operations
  • Use numpy for complex mathematical functions and matrix operations
  • All trigonometric functions should support both degrees and radians

Engineering Calculations

  • The 3Ph Impedance calculator implementation is provided in app.txt lines 54-451
  • Uses modified Carson's equations for earth return impedance calculations
  • Implements Kron reduction technique for 5-wire to 3-wire system conversion
  • Required classes: PowerSystemImpedanceCalculator, ConductorParams, Coordinate

UI Components

  • Main calculator interface with mode selection
  • Button layouts for different calculator modes
  • Text input/output areas for programming mode
  • Dropdown selection for engineering functions
  • History panel for calculation tracking
  • Embedded chat interface for AI assistance

Testing and Validation

Testing Commands

python -m pytest tests/  # Run test suite (when created)
python test_calculations.py  # Test mathematical accuracy

Validation Requirements

  • All basic arithmetic operations must maintain infinite precision
  • Scientific functions should match standard calculator behavior
  • Engineering calculations must be validated against known engineering standards
  • UI responsiveness across different screen sizes

Development Guidelines

File Organization

  • app.py - Main Gradio application
  • calculator/ - Calculator logic modules
  • engineering/ - Engineering calculation implementations
  • tests/ - Test files
  • static/ - CSS and JavaScript assets

Key Implementation Notes

  • Use Gradio's gr.Interface or gr.Blocks for the main application structure
  • Implement state management for calculation history and memory
  • Ensure all engineering calculations follow IEEE standards
  • Maintain separation between UI logic and calculation logic

Scientific Function Requirements

All scientific functions from app.txt lines 24-47 must be implemented:

  • Trigonometric: sin, cos, tan, asin, acos, atan
  • Reciprocal trigonometric: csc, sec, cot
  • Support for imaginary unit (i/j notation for electrical engineering)
  • Factorial calculations for positive integers

Performance Considerations

  • Implement caching for complex engineering calculations
  • Use efficient algorithms for matrix operations in impedance calculations
  • Optimize UI updates for real-time calculation display