## Points table
The table icon opens a separate screen (`PointsActivity`) with the coordinates x, y, z and the Gaussian curvature K of points of the surface on a grid of (u, v) values. Set **u from / to / step** and **v from / to / step**, then tap **Compute**; the defaults split the current ranges into 4 steps (a 5 × 5 grid). Up to 2000 points are shown, and the text is selectable so it can be copied. The K column helps to see where the surface is curved positively or negatively, and so where the ∬K dA term gets its contributions. K shows "NaN" at singular points.
## Languages
All screens (main screen, dialogs, menus, the theorem text) are available in English (default), Bulgarian, French, German and Spanish. By default the app follows the phone language; **Language** in the top bar switches it manually (the choice is remembered). To add a language, copy `res/values/strings.xml` to `res/values-XX/`, translate the values, then add the code to `LANG_CODES` and a menu item in `main_menu.xml` / `MainActivity.java`.
## Saving surfaces
- **Save (disk icon):** stores the current surface and ranges under a name; saving with an existing name overwrites it.
- **My surfaces (folder icon):** lists saved surfaces. Tap one to load it and run the check; long-press to delete.
- Surfaces are kept on the device (SharedPreferences) and survive app restarts.
## Limitations
- The region must avoid singular points (r_u × r_v = 0), for example the poles of a sphere parametrized by angles, the apex of a cone or the axis of a surface of revolution; the app warns when it detects one.
- The parametrization should be an immersion on the rectangle; the formula then holds for the pulled-back metric even if the map overlaps itself.
- Numerical derivatives give about 5-6 correct digits in the final sum.
- The region is always a rectangle in the (u, v) plane (a disk, χ = 1). Closed surfaces are handled by taking the full period of both parameters.