text:
# zbMATH — the first resource for mathematics

## Gugat, Martin

Compute Distance To:
 Author ID: gugat.martin Published as: Gugat, Martin; Gugat, M. External Links: MGP · ORCID · Wikidata
 Documents Indexed: 101 Publications since 1992, including 1 Book Reviewing Activity: 32 Reviews
all top 5

#### Co-Authors

 41 single-authored 24 Leugering, Günter 13 Herty, Michael Matthias 7 Dick, Markus 4 Wintergerst, David 3 Hante, Falk M. 3 Klar, Axel 3 Schleper, Veronika 3 Schultz, Rüdiger 3 Schuster, Michael J. 3 Steffensen, Sonja 3 Zuazua, Enrique 2 Grimm, Volker 2 Keimer, Alexander 2 Martin, Alexander 2 Schmidt, E. J. P. Georg 2 Schmidt, Martin 2 Sirvent, Mathias 2 Tröltzsch, Fredi 2 Ulbrich, Stefan 1 Farshbaf-Shaker, Mohammad Hassan 1 Gerster, Stephan 1 Giesselmann, Jan 1 Heitsch, Holger 1 Henrion, René 1 Hettich, Rainer 1 Hirsch-Dick, Markus 1 Mateos, Mariano 1 Müller, Siegfried 1 Perrollaz, Vincent 1 Pfeiffer, Barbara 1 Rosier, Lionel 1 Schittkowski, Klaus 1 Sigalotti, Mario 1 Sklyar, Grigory Mikhailovitch 1 Sokołowski, Jan 1 Tamasoiu, Simona Oana 1 Trélat, Emmanuel 1 Tucsnak, Marius 1 Weber, Gerhard-Wilhelm 1 Yu, Hui
all top 5

#### Serials

 9 SIAM Journal on Control and Optimization 6 European Series in Applied and Industrial Mathematics (ESAIM): Control, Optimization and Calculus of Variations 6 Networks and Heterogeneous Media 5 Journal of Optimization Theory and Applications 4 Systems & Control Letters 4 Optimization 3 Mathematical Methods in the Applied Sciences 3 Computational Optimization and Applications 3 Computational and Applied Mathematics 3 ZAMM. Zeitschrift für Angewandte Mathematik und Mechanik 2 Applicable Analysis 2 Control and Cybernetics 2 Annales de l’Institut Henri Poincaré. Analyse Non Linéaire 2 IMA Journal of Mathematical Control and Information 2 MCSS. Mathematics of Control, Signals, and Systems 2 Mathematical Programming. Series A. Series B 2 Mathematical Problems in Engineering 2 Mathematical Control and Related Fields 1 International Journal of Control 1 Journal of Mathematical Analysis and Applications 1 Automatica 1 Journal of Computational and Applied Mathematics 1 Management Science 1 Networks 1 SIAM Journal on Numerical Analysis 1 Optimal Control Applications & Methods 1 Chinese Annals of Mathematics. Series B 1 Constructive Approximation 1 M$$^3$$AS. Mathematical Models & Methods in Applied Sciences 1 Numerical Algorithms 1 SIAM Journal on Applied Mathematics 1 Vietnam Journal of Mathematics 1 Optimization Methods & Software 1 Mathematical Methods of Operations Research 1 International Journal of Applied Mathematics and Computer Science 1 Journal of Evolution Equations 1 European Series in Applied and Industrial Mathematics (ESAIM): Mathematical Modelling and Numerical Analysis 1 Advanced Modeling and Optimization 1 Numerical Algebra, Control and Optimization 1 Arabian Journal of Mathematics 1 Pure and Applied Functional Analysis 1 SpringerBriefs in Electrical and Computer Engineering
all top 5

#### Fields

 55 Partial differential equations (35-XX) 49 Systems theory; control (93-XX) 44 Calculus of variations and optimal control; optimization (49-XX) 29 Operations research, mathematical programming (90-XX) 24 Fluid mechanics (76-XX) 12 Numerical analysis (65-XX) 10 Mechanics of deformable solids (74-XX) 2 Approximations and expansions (41-XX) 2 Game theory, economics, finance, and other social and behavioral sciences (91-XX) 1 Combinatorics (05-XX) 1 Operator theory (47-XX) 1 Probability theory and stochastic processes (60-XX) 1 Mechanics of particles and systems (70-XX)

#### Citations contained in zbMATH Open

89 Publications have been cited 698 times in 354 Documents Cited by Year
Existence of classical solutions and feedback stabilization for the flow in gas networks. Zbl 1429.76090
Gugat, Martin; Herty, Michaël
2011
Global boundary controllability of the de St. Venant equations between steady states. Zbl 1032.93030
Gugat, M.; Leugering, G.
2003
Gas flow in fan-shaped networks: classical solutions and feedback stabilization. Zbl 1237.35107
Gugat, Martin; Dick, Markus; Leugering, Günter
2011
Optimal control for traffic flow networks. Zbl 1079.49024
Gugat, M.; Herty, M.; Klar, A.; Leugering, G.
2005
Flow control in gas networks: exact controllability to a given demand. Zbl 1394.76112
Gugat, M.; Herty, M.; Schleper, V.
2011
Global controllability between steady supercritical flows in channel networks. Zbl 1047.93028
Gugat, Martin; Leugering, Günter; Schmidt, E. J. P. Georg
2004
Stationary states in gas networks. Zbl 1332.93154
Gugat, Martin; Hante, Falk M.; Hirsch-Dick, Markus; Leugering, Günter
2015
Classical solutions and feedback stabilization for the gas flow in a sequence of pipes. Zbl 1263.76059
Dick, Markus; Gugat, Martin; Leugering, Günter
2010
Global boundary controllability of the Saint-Venant system for sloped canals with friction. Zbl 1154.76009
Gugat, M.; Leugering, G.
2009
Stars of vibrating strings: switching boundary feedback stabilization. Zbl 1258.93088
Gugat, Martin; Sigalotti, Mario
2010
Optimal Neumann control for the 1D wave equation: finite horizon, infinite horizon, boundary tracking terms and the turnpike property. Zbl 1335.49012
Gugat, Martin; Trélat, Emmanuel; Zuazua, Enrique
2016
$$L^{p}$$-optimal boundary control for the wave equation. Zbl 1083.49017
Gugat, M.; Leugering, G.; Sklyar, G.
2005
Optimal switching boundary control of a string to rest in finite time. Zbl 1242.49008
Gugat, Martin
2008
Analysis of a system of nonlocal conservation laws for multi-commodity flow on networks. Zbl 1335.49011
Gugat, Martin; Keimer, Alexander; Leugering, Günter; Wang, Zhiqiang
2015
Prox-regularization methods for generalized fractional programming. Zbl 0973.90078
Gugat, M.
1998
Boundary feedback stabilization by time delay for one-dimensional wave equations. Zbl 1198.93177
Gugat, Martin
2010
$$L^\infty$$-norm minimal control of the wave equation: on the weakness of the bang-bang principle. Zbl 1133.49006
Gugat, Martin; Leugering, Gunter
2008
$$H^2$$-stabilization of the isothermal Euler equations: a Lyapunov function approach. Zbl 1253.76112
Gugat, Martin; Leugering, Günter; Tamasoiu, Simona
2012
Well-posedness of networked hyperbolic systems of balance laws. Zbl 1356.49004
Gugat, Martin; Herty, Michael; Klar, Axel; Leugering, Günther; Schleper, Veronika
2012
An example for the switching delay feedback stabilization of an infinite dimensional system: the boundary stabilization of a string. Zbl 1216.93084
Gugat, Martin; Tucsnak, Marius
2011
The smoothed-penalty algorithm for state constrained optimal control problems for partial differential equations. Zbl 1201.90186
Gugat, Martin; Herty, Michael
2010
Optimal boundary control and boundary stabilization of hyperbolic systems. Zbl 1328.49001
Gugat, Martin
2015
Boundary feedback stabilization of the telegraph equation: decay rates for vanishing damping term. Zbl 1288.93066
Gugat, Martin
2014
Optimal nodal control of networked hyperbolic systems: evaluation of derivatives. Zbl 1165.49307
Gugat, Martin
2005
Modelling, stabilization, and control of flow in networks of open channels. Zbl 0987.93056
Gugat, Martin; Leugering, Günter; Schittkowski, Klaus; Schmidt, E. J. P. Georg
2001
Controllability of a slowly rotating Timoshenko beam. Zbl 1031.93103
Gugat, Martin
2001
A fast algorithm for a class of generalized fractional programs. Zbl 0881.90113
Gugat, Martin
1996
A strict $$H^1$$-Lyapunov function and feedback stabilization for the isothermal Euler equations with friction. Zbl 1242.76296
Dick, Markus; Gugat, Martin; Leugering, Günter
2011
Approximation of semigroups and related operator functions by resolvent series. Zbl 1222.65052
Grimm, Volker; Gugat, Martin
2010
One-sided derivatives for the value function in convex parametric programming. Zbl 0822.90130
Gugat, M.
1994
Optimal distributed control of the wave equation subject to state constraints. Zbl 1176.35176
Gugat, Martin; Keimer, Alexander; Leugering, Günter
2009
MIP-based instantaneous control of mixed-integer PDE-constrained gas transport problems. Zbl 1391.49040
Gugat, Martin; Leugering, Günter; Martin, Alexander; Schmidt, Martin; Sirvent, Mathias; Wintergerst, David
2018
Neumann boundary feedback stabilization for a nonlinear wave equation: A strict $$H^2$$-Lyapunov function. Zbl 1366.76079
Gugat, Martin; Leugering, Günter; Wang, Ke
2017
Boundary controllability between sub- and supercritical flow. Zbl 1047.35087
Gugat, Martin
2003
Time-delayed boundary feedback stabilization of the isothermal Euler equations with friction. Zbl 1368.76010
Gugat, Martin; Dick, Markus
2011
Penalty techniques for state constrained optimal control problems with the wave equation. Zbl 1202.49037
Gugat, Martin
2010
Boundary feedback stabilization of the Schlögl system. Zbl 1309.93121
Gugat, Martin; Tröltzsch, Fredi
2015
Weber problems with mixed distances and regional demand. Zbl 1146.90464
Gugat, Martin; Pfeiffer, Barbara
2007
Networks of pipelines for gas with nonconstant compressibility factor: stationary states. Zbl 1416.76253
Gugat, Martin; Schultz, Rüdiger; Wintergerst, David
2018
Parametric disjunctive programming: One-sided differentiability of the value function. Zbl 0886.90113
Gugat, M.
1997
The isothermal Euler equations for ideal gas with source term: product solutions, flow reversal and no blow up. Zbl 1372.35224
Gugat, Martin; Ulbrich, Stefan
2017
Solutions of $$L^p$$-norm-minimal control problems for the wave equation. Zbl 1119.90353
Gugat, Martin; Leugering, G.
2002
Optimal boundary feedback stabilization of a string with moving boundary. Zbl 1141.93047
Gugat, Martin
2008
Boundary stabilization of quasilinear hyperbolic systems of balance laws: exponential decay for small source terms. Zbl 1421.35213
Gugat, Martin; Perrollaz, Vincent; Rosier, Lionel
2018
On the turnpike phenomenon for optimal boundary control problems with hyperbolic systems. Zbl 1418.35252
Gugat, Martin; Hante, Falk M.
2019
Regularization of $$L^\infty$$-optimal control problems for distributed parameter systems. Zbl 1015.49020
Gugat, M.; Leugering, G.
2002
Analytic solutions of $$L^{\infty}$$ optimal control problems for the wave equation. Zbl 1012.49025
Gugat, M.
2002
Norm-minimal Neumann boundary control of the wave equation. Zbl 1314.35205
Gugat, Martin
2015
Towards simulation based mixed integer optimization with differential equations. Zbl 1397.90308
Gugat, Martin; Leugering, Günter; Martin, Alexander; Schmidt, Martin; Sirvent, Mathias; Wintergerst, David
2018
Contamination source determination in water distribution networks. Zbl 1260.49005
Gugat, Martin
2012
An algorithm for Chebyshev approximation by rationals with constrained denominators. Zbl 0886.41013
Gugat, M.
1996
Coupling conditions for the transition from supersonic to subsonic fluid states. Zbl 1379.35241
Gugat, Martin; Herty, Michael; Müller, Siegfried
2017
Exact penalization of terminal constraints for optimal control problems. Zbl 1353.49005
Gugat, Martin; Zuazua, Enrique
2016
Optimal boundary control of the wave equation with pointwise control constraints. Zbl 1226.49023
Gugat, Martin; Grimm, Volker
2011
Exponential stabilization of the wave equation by Dirichlet integral feedback. Zbl 1339.35156
Gugat, Martin
2015
Optimal boundary control of a string to rest in finite time with continuous state. Zbl 1092.49020
Gugat, Martin
2006
A note on the approximation of Dirichlet boundary control problems for the wave equation on curved domains. Zbl 1273.49009
Gugat, M.; Sokolowski, J.
2013
Conservation law constrained optimization based upon Front-Tracking. Zbl 1116.65079
Gugat, Martin; Herty, Michaël; Klar, Axel; Leugering, Gunter
2006
Time-parametric control: Uniform convergence of the optimal value functions of discretized problems. Zbl 0951.49032
Gugat, Martin
1999
A Newton method for the computation of time-optimal boundary controls of one-dimensional vibrating systems. Zbl 0953.93042
Gugat, Martin
2000
The Newton differential correction algorithm for rational Chebyshev approximation with constrained denominators. Zbl 0860.65006
Gugat, M.
1996
A parametric view on the Mangasarian-Fromovitz constraint qualification. Zbl 0976.90111
Gugat, Martin
1999
Optimization under functional constraints (semi-infinite programming) and applications. Zbl 0770.90070
Hettich, Rainer; Gugat, Martin
1992
Lavrentiev-prox-regularization for optimal control of PDEs with state constraints. Zbl 1200.65051
Gugat, Martin
2009
Optimal energy control in finite time by varying the length of the string. Zbl 1144.49016
Gugat, Martin
2007
Erratum to: “Flow control in gas networks: exact controllability to a given demand”. Zbl 1464.76183
Gugat, M.; Herty, M.; Schleper, V.
2015
Lipschitz continuity of the value function in mixed-integer optimal control problems. Zbl 1439.49047
Gugat, Martin; Hante, Falk M.
2017
$$L^1$$-optimal boundary control of a string to rest in finite time. Zbl 1108.49017
Gugat, Martin
2006
Stabilization of networked hyperbolic systems with boundary feedback. Zbl 1327.93312
Dick, Markus; Gugat, Martin; Herty, Michael; Leugering, Günter; Steffensen, Sonja; Wang, Ke
2014
On the limits of stabilizability for networks of strings. Zbl 1425.93229
Gugat, Martin; Gerster, Stephan
2019
Lipschitz solutions of initial boundary value problems for balance laws. Zbl 1394.35261
Gugat, Martin; Ulbrich, Stefan
2018
Convex semi-infinite parametric programming: Uniform convergence of the optimal value functions of discretized problems. Zbl 0956.90054
Gugat, M.
1999
Optimal boundary control in flood management. Zbl 1239.49030
Gugat, Martin
2007
Error bounds for infinite systems of convex inequalities without Slater’s condition. Zbl 0997.90090
Gugat, Martin
2000
Computation of lower bounds for spectra via fractional semi-infinite programming. Zbl 0841.65091
Gugat, Martin
1995
Transient flow in gas networks: traveling waves. Zbl 1442.35316
Gugat, Martin; Wintergerst, David
2018
Exact boundary controllability for free traffic flow with Lipschitz continuous state. Zbl 1400.90098
Gugat, Martin
2016
A smoothed penalty iteration for state constrained optimal control problems for partial differential equations. Zbl 1290.90072
Gugat, Martin; Herty, Michael
2013
Stationary gas networks with compressor control and random loads: optimization with probabilistic constraints. Zbl 1427.76234
Gugat, Martin; Schuster, Michael; Weber, Gerhard-Wilhelm
2018
Parametric convex optimization: One-sided derivatives of the value function in singular parameters. Zbl 0961.90114
Gugat, Martin
1998
Corrigendum: One-sided derivatives for the value function in convex parametric programming. Zbl 0864.90113
Gugat, M.
1996
Semi-infinite terminal problems: A Newton type method. Zbl 0916.65066
Gugat, Martin
1998
Lavrentiev prox-regularization methods for optimal control problems with pointwise state constraints. Zbl 1197.49042
Gugat, Martin
2009
Nodal control of conservation laws on networks. Sensitivity calculations for the control of systems of conservation laws with source terms on networks. Zbl 1097.65071
Gugat, Martin
2005
On the relaxation approximation of boundary control of the isothermal Euler equations. Zbl 1253.93110
Dick, M.; Gugat, M.; Herty, M.; Steffensen, S.
2012
Stabilization of the gas flow in star-shaped networks by feedback controls with varying delay. Zbl 1264.93206
Gugat, Martin; Dick, Markus; Leugering, Günter
2013
On the relaxation approximation for $$2\times 2$$ hyperbolic balance laws. Zbl 1407.65105
Gugat, Martin; Herty, Michael; Yu, Hui
2018
Boundary feedback stabilization of the isothermal Euler equations with uncertain boundary data. Zbl 1391.76673
Gugat, Martin; Schultz, Rüdiger
2018
A turnpike result for convex hyperbolic optimal boundary control problems. Zbl 1458.35259
Gugat, Martin
2019
On the turnpike phenomenon for optimal boundary control problems with hyperbolic systems. Zbl 1418.35252
Gugat, Martin; Hante, Falk M.
2019
On the limits of stabilizability for networks of strings. Zbl 1425.93229
Gugat, Martin; Gerster, Stephan
2019
A turnpike result for convex hyperbolic optimal boundary control problems. Zbl 1458.35259
Gugat, Martin
2019
MIP-based instantaneous control of mixed-integer PDE-constrained gas transport problems. Zbl 1391.49040
Gugat, Martin; Leugering, Günter; Martin, Alexander; Schmidt, Martin; Sirvent, Mathias; Wintergerst, David
2018
Networks of pipelines for gas with nonconstant compressibility factor: stationary states. Zbl 1416.76253
Gugat, Martin; Schultz, Rüdiger; Wintergerst, David
2018
Boundary stabilization of quasilinear hyperbolic systems of balance laws: exponential decay for small source terms. Zbl 1421.35213
Gugat, Martin; Perrollaz, Vincent; Rosier, Lionel
2018
Towards simulation based mixed integer optimization with differential equations. Zbl 1397.90308
Gugat, Martin; Leugering, Günter; Martin, Alexander; Schmidt, Martin; Sirvent, Mathias; Wintergerst, David
2018
Lipschitz solutions of initial boundary value problems for balance laws. Zbl 1394.35261
Gugat, Martin; Ulbrich, Stefan
2018
Transient flow in gas networks: traveling waves. Zbl 1442.35316
Gugat, Martin; Wintergerst, David
2018
Stationary gas networks with compressor control and random loads: optimization with probabilistic constraints. Zbl 1427.76234
Gugat, Martin; Schuster, Michael; Weber, Gerhard-Wilhelm
2018
On the relaxation approximation for $$2\times 2$$ hyperbolic balance laws. Zbl 1407.65105
Gugat, Martin; Herty, Michael; Yu, Hui
2018
Boundary feedback stabilization of the isothermal Euler equations with uncertain boundary data. Zbl 1391.76673
Gugat, Martin; Schultz, Rüdiger
2018
Neumann boundary feedback stabilization for a nonlinear wave equation: A strict $$H^2$$-Lyapunov function. Zbl 1366.76079
Gugat, Martin; Leugering, Günter; Wang, Ke
2017
The isothermal Euler equations for ideal gas with source term: product solutions, flow reversal and no blow up. Zbl 1372.35224
Gugat, Martin; Ulbrich, Stefan
2017
Coupling conditions for the transition from supersonic to subsonic fluid states. Zbl 1379.35241
Gugat, Martin; Herty, Michael; Müller, Siegfried
2017
Lipschitz continuity of the value function in mixed-integer optimal control problems. Zbl 1439.49047
Gugat, Martin; Hante, Falk M.
2017
Optimal Neumann control for the 1D wave equation: finite horizon, infinite horizon, boundary tracking terms and the turnpike property. Zbl 1335.49012
Gugat, Martin; Trélat, Emmanuel; Zuazua, Enrique
2016
Exact penalization of terminal constraints for optimal control problems. Zbl 1353.49005
Gugat, Martin; Zuazua, Enrique
2016
Exact boundary controllability for free traffic flow with Lipschitz continuous state. Zbl 1400.90098
Gugat, Martin
2016
Stationary states in gas networks. Zbl 1332.93154
Gugat, Martin; Hante, Falk M.; Hirsch-Dick, Markus; Leugering, Günter
2015
Analysis of a system of nonlocal conservation laws for multi-commodity flow on networks. Zbl 1335.49011
Gugat, Martin; Keimer, Alexander; Leugering, Günter; Wang, Zhiqiang
2015
Optimal boundary control and boundary stabilization of hyperbolic systems. Zbl 1328.49001
Gugat, Martin
2015
Boundary feedback stabilization of the Schlögl system. Zbl 1309.93121
Gugat, Martin; Tröltzsch, Fredi
2015
Norm-minimal Neumann boundary control of the wave equation. Zbl 1314.35205
Gugat, Martin
2015
Exponential stabilization of the wave equation by Dirichlet integral feedback. Zbl 1339.35156
Gugat, Martin
2015
Erratum to: “Flow control in gas networks: exact controllability to a given demand”. Zbl 1464.76183
Gugat, M.; Herty, M.; Schleper, V.
2015
Boundary feedback stabilization of the telegraph equation: decay rates for vanishing damping term. Zbl 1288.93066
Gugat, Martin
2014
Stabilization of networked hyperbolic systems with boundary feedback. Zbl 1327.93312
Dick, Markus; Gugat, Martin; Herty, Michael; Leugering, Günter; Steffensen, Sonja; Wang, Ke
2014
A note on the approximation of Dirichlet boundary control problems for the wave equation on curved domains. Zbl 1273.49009
Gugat, M.; Sokolowski, J.
2013
A smoothed penalty iteration for state constrained optimal control problems for partial differential equations. Zbl 1290.90072
Gugat, Martin; Herty, Michael
2013
Stabilization of the gas flow in star-shaped networks by feedback controls with varying delay. Zbl 1264.93206
Gugat, Martin; Dick, Markus; Leugering, Günter
2013
$$H^2$$-stabilization of the isothermal Euler equations: a Lyapunov function approach. Zbl 1253.76112
Gugat, Martin; Leugering, Günter; Tamasoiu, Simona
2012
Well-posedness of networked hyperbolic systems of balance laws. Zbl 1356.49004
Gugat, Martin; Herty, Michael; Klar, Axel; Leugering, Günther; Schleper, Veronika
2012
Contamination source determination in water distribution networks. Zbl 1260.49005
Gugat, Martin
2012
On the relaxation approximation of boundary control of the isothermal Euler equations. Zbl 1253.93110
Dick, M.; Gugat, M.; Herty, M.; Steffensen, S.
2012
Existence of classical solutions and feedback stabilization for the flow in gas networks. Zbl 1429.76090
Gugat, Martin; Herty, Michaël
2011
Gas flow in fan-shaped networks: classical solutions and feedback stabilization. Zbl 1237.35107
Gugat, Martin; Dick, Markus; Leugering, Günter
2011
Flow control in gas networks: exact controllability to a given demand. Zbl 1394.76112
Gugat, M.; Herty, M.; Schleper, V.
2011
An example for the switching delay feedback stabilization of an infinite dimensional system: the boundary stabilization of a string. Zbl 1216.93084
Gugat, Martin; Tucsnak, Marius
2011
A strict $$H^1$$-Lyapunov function and feedback stabilization for the isothermal Euler equations with friction. Zbl 1242.76296
Dick, Markus; Gugat, Martin; Leugering, Günter
2011
Time-delayed boundary feedback stabilization of the isothermal Euler equations with friction. Zbl 1368.76010
Gugat, Martin; Dick, Markus
2011
Optimal boundary control of the wave equation with pointwise control constraints. Zbl 1226.49023
Gugat, Martin; Grimm, Volker
2011
Classical solutions and feedback stabilization for the gas flow in a sequence of pipes. Zbl 1263.76059
Dick, Markus; Gugat, Martin; Leugering, Günter
2010
Stars of vibrating strings: switching boundary feedback stabilization. Zbl 1258.93088
Gugat, Martin; Sigalotti, Mario
2010
Boundary feedback stabilization by time delay for one-dimensional wave equations. Zbl 1198.93177
Gugat, Martin
2010
The smoothed-penalty algorithm for state constrained optimal control problems for partial differential equations. Zbl 1201.90186
Gugat, Martin; Herty, Michael
2010
Approximation of semigroups and related operator functions by resolvent series. Zbl 1222.65052
Grimm, Volker; Gugat, Martin
2010
Penalty techniques for state constrained optimal control problems with the wave equation. Zbl 1202.49037
Gugat, Martin
2010
Global boundary controllability of the Saint-Venant system for sloped canals with friction. Zbl 1154.76009
Gugat, M.; Leugering, G.
2009
Optimal distributed control of the wave equation subject to state constraints. Zbl 1176.35176
Gugat, Martin; Keimer, Alexander; Leugering, Günter
2009
Lavrentiev-prox-regularization for optimal control of PDEs with state constraints. Zbl 1200.65051
Gugat, Martin
2009
Lavrentiev prox-regularization methods for optimal control problems with pointwise state constraints. Zbl 1197.49042
Gugat, Martin
2009
Optimal switching boundary control of a string to rest in finite time. Zbl 1242.49008
Gugat, Martin
2008
$$L^\infty$$-norm minimal control of the wave equation: on the weakness of the bang-bang principle. Zbl 1133.49006
Gugat, Martin; Leugering, Gunter
2008
Optimal boundary feedback stabilization of a string with moving boundary. Zbl 1141.93047
Gugat, Martin
2008
Weber problems with mixed distances and regional demand. Zbl 1146.90464
Gugat, Martin; Pfeiffer, Barbara
2007
Optimal energy control in finite time by varying the length of the string. Zbl 1144.49016
Gugat, Martin
2007
Optimal boundary control in flood management. Zbl 1239.49030
Gugat, Martin
2007
Optimal boundary control of a string to rest in finite time with continuous state. Zbl 1092.49020
Gugat, Martin
2006
Conservation law constrained optimization based upon Front-Tracking. Zbl 1116.65079
Gugat, Martin; Herty, Michaël; Klar, Axel; Leugering, Gunter
2006
$$L^1$$-optimal boundary control of a string to rest in finite time. Zbl 1108.49017
Gugat, Martin
2006
Optimal control for traffic flow networks. Zbl 1079.49024
Gugat, M.; Herty, M.; Klar, A.; Leugering, G.
2005
$$L^{p}$$-optimal boundary control for the wave equation. Zbl 1083.49017
Gugat, M.; Leugering, G.; Sklyar, G.
2005
Optimal nodal control of networked hyperbolic systems: evaluation of derivatives. Zbl 1165.49307
Gugat, Martin
2005
Nodal control of conservation laws on networks. Sensitivity calculations for the control of systems of conservation laws with source terms on networks. Zbl 1097.65071
Gugat, Martin
2005
Global controllability between steady supercritical flows in channel networks. Zbl 1047.93028
Gugat, Martin; Leugering, Günter; Schmidt, E. J. P. Georg
2004
Global boundary controllability of the de St. Venant equations between steady states. Zbl 1032.93030
Gugat, M.; Leugering, G.
2003
Boundary controllability between sub- and supercritical flow. Zbl 1047.35087
Gugat, Martin
2003
Solutions of $$L^p$$-norm-minimal control problems for the wave equation. Zbl 1119.90353
Gugat, Martin; Leugering, G.
2002
Regularization of $$L^\infty$$-optimal control problems for distributed parameter systems. Zbl 1015.49020
Gugat, M.; Leugering, G.
2002
Analytic solutions of $$L^{\infty}$$ optimal control problems for the wave equation. Zbl 1012.49025
Gugat, M.
2002
Modelling, stabilization, and control of flow in networks of open channels. Zbl 0987.93056
Gugat, Martin; Leugering, Günter; Schittkowski, Klaus; Schmidt, E. J. P. Georg
2001
Controllability of a slowly rotating Timoshenko beam. Zbl 1031.93103
Gugat, Martin
2001
A Newton method for the computation of time-optimal boundary controls of one-dimensional vibrating systems. Zbl 0953.93042
Gugat, Martin
2000
Error bounds for infinite systems of convex inequalities without Slater’s condition. Zbl 0997.90090
Gugat, Martin
2000
Time-parametric control: Uniform convergence of the optimal value functions of discretized problems. Zbl 0951.49032
Gugat, Martin
1999
A parametric view on the Mangasarian-Fromovitz constraint qualification. Zbl 0976.90111
Gugat, Martin
1999
Convex semi-infinite parametric programming: Uniform convergence of the optimal value functions of discretized problems. Zbl 0956.90054
Gugat, M.
1999
Prox-regularization methods for generalized fractional programming. Zbl 0973.90078
Gugat, M.
1998
Parametric convex optimization: One-sided derivatives of the value function in singular parameters. Zbl 0961.90114
Gugat, Martin
1998
Semi-infinite terminal problems: A Newton type method. Zbl 0916.65066
Gugat, Martin
1998
Parametric disjunctive programming: One-sided differentiability of the value function. Zbl 0886.90113
Gugat, M.
1997
A fast algorithm for a class of generalized fractional programs. Zbl 0881.90113
Gugat, Martin
1996
An algorithm for Chebyshev approximation by rationals with constrained denominators. Zbl 0886.41013
Gugat, M.
1996
The Newton differential correction algorithm for rational Chebyshev approximation with constrained denominators. Zbl 0860.65006
Gugat, M.
1996
Corrigendum: One-sided derivatives for the value function in convex parametric programming. Zbl 0864.90113
Gugat, M.
1996
Computation of lower bounds for spectra via fractional semi-infinite programming. Zbl 0841.65091
Gugat, Martin
1995
One-sided derivatives for the value function in convex parametric programming. Zbl 0822.90130
Gugat, M.
1994
Optimization under functional constraints (semi-infinite programming) and applications. Zbl 0770.90070
Hettich, Rainer; Gugat, Martin
1992
all top 5

#### Cited by 441 Authors

 55 Gugat, Martin 21 Leugering, Günter 18 Herty, Michael Matthias 12 Keimer, Alexander 10 Roubi, Ahmed 9 Coron, Jean-Michel 9 Göttlich, Simone 9 Hante, Falk M. 9 Prieur, Christophe 8 Kunisch, Karl 8 Schmidt, Martin 7 Pflug, Lukas 6 Li, Tatsien 6 Zuazua, Enrique 5 Bastin, Georges 5 Grüne, Lars 5 Krstić, Miroslav 5 Schewe, Lars 5 Shang, Peipei 4 Bermúdez, Alfredo 4 Boufi, Karima 4 Clason, Christian 4 Grimm, Volker 4 Gu, Qilong 4 Hayat, Amaury 4 Klar, Axel 4 López, Xián 4 Nicaise, Serge 4 Piccoli, Benedetto 4 Pignotti, Cristina 4 Trélat, Emmanuel 4 Vázquez-Cendón, María Elena 4 Xu, Huifu 3 Aamo, Ole Morten 3 Alvarez-Vázquez, Lino Jose 3 Banda, Mapundi Kondwani 3 Bayen, Alexandre M. 3 Chitour, Yacine 3 D’Apice, Ciro 3 Delle Monache, Maria Laura 3 El Haffari, Mostafa 3 Garavello, Mauro 3 Girard, Antoine 3 Goatin, Paola 3 Kmit, Irina 3 Kröner, Axel 3 Manita, Larissa A. 3 Martin, Alexander 3 Martinez, Aurea 3 Mazanti, Guilherme 3 Schaller, Manuel 3 Schiela, Anton 3 Schillen, Peter 3 Schleper, Veronika 3 Schultz, Rüdiger 3 Schuster, Michael J. 3 Sirvent, Mathias 3 Spinola, Michele 3 Steinbach, Marc Christian 3 Sun, Hailin 3 Tröltzsch, Fredi 3 Ulbrich, Stefan 3 Wintergerst, David 3 Xu, Gen-Qi 3 Zelikin, Mikhail Il’ich 3 Zhang, Liguo 3 Zhuang, Kaili 2 Addoune, Smail 2 Barnard, Richard C. 2 Borsche, Raul 2 Boutoulout, Ali 2 Bressan, Alberto 2 Briani, Maya 2 Chang, Ching-Ter 2 Colombo, Rinaldo M. 2 Corli, Andrea 2 Crouzeix, Jean-Pierre 2 El Alami, Abdessamad 2 Elosmani, Mohamed 2 Espejo, Inmaculada 2 Fardigola, Larissa V. 2 Ferland, Jacques A. 2 García-Chan, Néstor 2 Gerdts, Matthias 2 Gerster, Stephan 2 Glass, Olivier 2 Göckler, Tanja 2 Goudiaby, Mouhamadou Samsidy 2 Grossmann, Christian 2 Guglielmi, Roberto 2 Heitsch, Holger 2 Hu, Long 2 Ivanov, Sergei A. 2 Jiang, Bin 2 Jiao, Hongwei 2 Kolb, Oliver 2 Kreiss, Gunilla 2 Lamare, Pierre-Olivier 2 Liu, Qian 2 Liu, Yongchao ...and 341 more Authors
all top 5

#### Cited in 108 Serials

 20 SIAM Journal on Control and Optimization 18 Automatica 18 Systems & Control Letters 16 European Series in Applied and Industrial Mathematics (ESAIM): Control, Optimization and Calculus of Variations 15 Networks and Heterogeneous Media 14 Journal of Optimization Theory and Applications 11 Optimization 10 Mathematical Methods in the Applied Sciences 9 Journal of Differential Equations 9 Mathematical Control and Related Fields 8 Computational Optimization and Applications 7 Journal of Computational and Applied Mathematics 6 Mathematical Programming. Series A. Series B 6 SIAM Journal on Scientific Computing 5 Journal of Mathematical Analysis and Applications 5 European Journal of Operational Research 5 Journal de Mathématiques Pures et Appliquées. Neuvième Série 5 Vietnam Journal of Mathematics 4 International Journal of Control 4 Nonlinear Analysis. Theory, Methods & Applications. Series A: Theory and Methods 4 Chinese Annals of Mathematics. Series B 4 MCSS. Mathematics of Control, Signals, and Systems 4 Journal of Global Optimization 4 European Journal of Control 4 Mathematical Methods of Operations Research 4 Journal of Hyperbolic Differential Equations 3 Computers & Mathematics with Applications 3 Journal of Computational Physics 3 Journal of Scientific Computing 3 M$$^3$$AS. Mathematical Models & Methods in Applied Sciences 3 SIAM Journal on Mathematical Analysis 3 Top 3 Mathematical Problems in Engineering 3 International Journal of Applied Mathematics and Computer Science 3 Optimization and Engineering 2 Computers and Fluids 2 Ukrainian Mathematical Journal 2 Applied Mathematics and Computation 2 Applied Mathematics and Optimization 2 Numerical Functional Analysis and Optimization 2 SIAM Journal on Numerical Analysis 2 Optimal Control Applications & Methods 2 Annales de l’Institut Henri Poincaré. Analyse Non Linéaire 2 Computers & Operations Research 2 Journal of Dynamics and Differential Equations 2 SIAM Journal on Optimization 2 Journal of Mathematical Sciences (New York) 2 Discrete and Continuous Dynamical Systems 2 Optimization Methods & Software 2 ZAMM. Zeitschrift für Angewandte Mathematik und Mechanik 2 Journal of the European Mathematical Society (JEMS) 2 Journal of Dynamical and Control Systems 2 RAIRO. Operations Research 2 Discrete and Continuous Dynamical Systems. Series B 2 Journal of Applied Mathematics 2 European Series in Applied and Industrial Mathematics (ESAIM): Mathematical Modelling and Numerical Analysis 2 Discrete and Continuous Dynamical Systems. Series S 1 Applicable Analysis 1 Journal of Engineering Mathematics 1 Journal of the Franklin Institute 1 ZAMP. Zeitschrift für angewandte Mathematik und Physik 1 Mathematics of Computation 1 Chaos, Solitons and Fractals 1 BIT 1 International Journal for Numerical Methods in Engineering 1 Journal of Approximation Theory 1 Mathematics and Computers in Simulation 1 Opsearch 1 Quarterly of Applied Mathematics 1 Rendiconti del Circolo Matemàtico di Palermo. Serie II 1 Transactions of the American Mathematical Society 1 Acta Applicandae Mathematicae 1 Constructive Approximation 1 Numerical Methods for Partial Differential Equations 1 Asia-Pacific Journal of Operational Research 1 Mathematical and Computer Modelling 1 Asymptotic Analysis 1 Numerical Algorithms 1 International Journal of Computer Mathematics 1 Pattern Recognition 1 SIAM Journal on Applied Mathematics 1 Journal of Computer and Systems Sciences International 1 Set-Valued Analysis 1 Numerical Linear Algebra with Applications 1 Computational and Applied Mathematics 1 Journal of Inverse and Ill-Posed Problems 1 ETNA. Electronic Transactions on Numerical Analysis 1 NoDEA. Nonlinear Differential Equations and Applications 1 Advances in Computational Mathematics 1 Discrete Dynamics in Nature and Society 1 Nonlinear Analysis. Real World Applications 1 Journal of Evolution Equations 1 Journal of Systems Science and Complexity 1 Journal of Applied Mathematics and Computing 1 SIAM Journal on Applied Dynamical Systems 1 4OR 1 Mathematical Biosciences and Engineering 1 Journal of Industrial and Management Optimization 1 GAMM-Mitteilungen 1 Proceedings of the Steklov Institute of Mathematics ...and 8 more Serials
all top 5

#### Cited in 32 Fields

 183 Partial differential equations (35-XX) 156 Systems theory; control (93-XX) 114 Operations research, mathematical programming (90-XX) 103 Calculus of variations and optimal control; optimization (49-XX) 59 Numerical analysis (65-XX) 46 Fluid mechanics (76-XX) 12 Mechanics of deformable solids (74-XX) 8 Operator theory (47-XX) 7 Game theory, economics, finance, and other social and behavioral sciences (91-XX) 6 Dynamical systems and ergodic theory (37-XX) 5 Approximations and expansions (41-XX) 4 Ordinary differential equations (34-XX) 3 Linear and multilinear algebra; matrix theory (15-XX) 3 Probability theory and stochastic processes (60-XX) 2 Combinatorics (05-XX) 2 Real functions (26-XX) 2 Difference and functional equations (39-XX) 2 Functional analysis (46-XX) 2 Statistical mechanics, structure of matter (82-XX) 2 Biology and other natural sciences (92-XX) 1 General and overarching topics; collections (00-XX) 1 Functions of a complex variable (30-XX) 1 Potential theory (31-XX) 1 Special functions (33-XX) 1 Harmonic analysis on Euclidean spaces (42-XX) 1 Integral transforms, operational calculus (44-XX) 1 Integral equations (45-XX) 1 General topology (54-XX) 1 Computer science (68-XX) 1 Mechanics of particles and systems (70-XX) 1 Classical thermodynamics, heat transfer (80-XX) 1 Information and communication theory, circuits (94-XX)

#### Wikidata Timeline

The data are displayed as stored in Wikidata under a Creative Commons CC0 License. Updates and corrections should be made in Wikidata.


text:
Try to write some code in your language and make it not satisfying our criteria of being a programming language any more.

A language satisfies our criteria (simplified version for this challenge) of being a programming language if:

• It can read user input representing tuples of positive integers in some way.
• It can output at least two different possible results depending on the input.
• It can take two positive integers and add them (and the result can affect the output).
• It can take a positive integer and decide whether it is a prime (and the result can affect the output).
• For the purpose of this challenge, any kind of output that isn't an allowed output method for a normal challenge is ignored. So it doesn't matter whether the program can also play a piece of music, or posting via HTTP, etc.
• Update: You can also choose one or some of the allowed output methods, and ignore all the others. But you must use the same definition everywhere in the following criteria. And if your program can disable more than one output methods — that worths more upvotes.

Examples like making it not able to output, or disabling all the loop constructs so it won't be able to do primality test and making sure the user cannot re-enable them.

You should leave a place for inserting new code. By default, it is at the end of your code. If we consider putting the source code in that place in your answer and running the full code as a complete program the interpreter of a new language, that language should not satisfy the criteria.

But the inserted code must be executed in such a way like a language satisfying the criteria:

• The inserted code must be grammatically the same as something (say it's a code block in the following criteria) that generally do satisfy the criteria, from the perspective of whoever wants to write a syntax highlighter. So it cannot be in a string, comment, etc.
• The inserted code must be actually executed, in a way it is supposed to satisfy the criteria. So it cannot be in an unused function or sizeof in C, you cannot just execute only a non-functional part in the code, and you cannot put it after an infinite loop, etc.
• You can't limit the number of possible grammatically correct programs generated this way. If there is already something like a length limit in the language you are using, it shouldn't satisfy the criteria even if this limit is removed.
• You can't modify or "use up" the content of input / output, but you can prevent them from being accessed.
• These criteria usually only applies to languages without explicit I/O:
• Your code should redirect the user input (that contains informations of arbitrary length) to the inserted code, if a code block isn't usually able to get the user input directly / explicitly in the language you are using.
• Your code should print the returned value of the inserted code, if a code block isn't usually able to output things directly / explicitly in the language you are using.
• In case you print the returned value, and it is typed in the language you are using, the returned type should be able to have 2 different practically possible values. For example, you cannot use the type struct {} or struct {private:int x;} in C++.

This is popularity-contest. The highest voted valid answer (so nobody spotted an error or all errors are fixed) wins.

## Clarifications

• You shouldn't modify the code in the text form, but can change the syntax before the code is interpreted or compiled.
• You can do other things while the code is running. But the reason that it doesn't satisfy the criteria should be within the inserted code itself. It can error because of the interference of another thread, but not just be killed by another thread.
• All the specs basically means it should be grammatically likely satisfying the criteria if all the built-ins were not changed but not actually do. It's fine if you find any non-grammatical workarounds, such as passing the parameters to the code block correctly, but make them not able to be used in some way.
• Again, the inserted code must be actually executed. Code after an infinite loop or crashing is considered "not actually executed", thus not valid. Those answers might be interesting, but there are already some other infinite loop or crashing questions on this site, and you may find a more appropriate one to answer. If not, consider asking a new question. Examples of those questions are:

var QUESTION_ID=61115/*,OVERRIDE_USER=8478*/;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,/*getComments()*/(more_answers?getAnswers():process())}})}/*function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}*/function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="
"+e.body.replace(OVERRIDE_REG,"")+"
")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),score:s.score,language:a[1],lang:jQuery('
').html(a[1]).text(),link:s.share_link})}),e.sort(function(e,s){var r=e.score,a=s.score;return a-r});var s={},r=1,a=null,n=1;e.forEach(function(e){e.score!=a&&(n=r),a=e.score,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",e.n=n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.score).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/s.lang.toUpperCase())-(e.lang.toUpperCase()<s.lang.toUpperCase())||(e.lang>s.lang)-(e.lang<s.lang)});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{PLACE}}",o.n).replace("{{LANGUAGE}}",o.language).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.score).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<(?:h\d|(?!.*<h\d>)p)>\s*((?:[^,;(\s]| +[^-,;(\s])+)(?=(?: *(?:[,;(]| -).*?)?\s*<\/(h\d|p)>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;float:left}table{width:250px}table thead{font-weight:700}table td{padding:5px}
 <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea">

Leaderboard

	Author	Language	Score

Sorted by Language

	Language	User	Score

{{PLACE}}	{{NAME}}	{{LANGUAGE}}	{{SIZE}}	Link

{{PLACE}}	{{LANGUAGE}}	{{NAME}}	{{SIZE}}	Link

• Am I allowed to change the code before executing it? Also, can I run other code whilst I am running the code given? – Blue Oct 18 '15 at 12:30
• This could have made a really great cops and robbers challenge I think. – DankMemes Oct 18 '15 at 23:07
• @DankMemes Agreed. As it stands, it's much too vague, and most answers would be invalidated by finding a workaround. CnR with this premise would be delightful. – user45941 Oct 18 '15 at 23:54
• So then it seems to be saying that in languages with explicit IO it's permissible to do completely boring things like reading and discarding the contents of stdin. It sets up a completely unfair playing field where some languages require you to carefully handle the IO for the inserted code, and other languages allow you to trash it and deny IO to the inserted code. – Peter Taylor Oct 19 '15 at 12:28
• Are we allowed to use a language that's already unusable to begin with? (JavaScript for example) – 12Me21 Oct 17 '17 at 14:23

# Bash

exec &> /dev/null

Any code that comes after can execute whatever it wants, but its output is cast into the void of /dev/null.

• File I/O still works though. – eush77 May 14 '17 at 18:02
• @eush77 True! However, the challenge stated that we could cover only a subset of the allowed output methods. – Chris May 15 '17 at 8:51
• Right, I missed that. – eush77 May 15 '17 at 9:16
• Too bad exec &> /dev/tty easily reverses that :) – eush77 May 15 '17 at 9:23
• @eush77 True... If you really wanted to break it, you would do exec &> /dev/null < /dev/zero. But I'm pretty sure that breaks the rules. – Chris May 15 '17 at 20:03

# Forth (gforth), 8 bytes

0 >ORDER

Everything you type in after that except an empty line will result in Invalid memory address.

I stumbled upon this by accident just now, I don't know precisely how it works but I guess >ORDER adds a new dictionary to search in for words or something. And it can't read from address 0, the address we told it to search for first, so it throws an error.

# Forth (RCOS), 10 bytes

0 LATEST !

Tells the Forth that no words have been defined (latest word is the null pointer). Thus, you can only input numbers, everything else results in an Unknown token error.

# Forth (RCOS), 18 bytes

219 ' INTERPRET C!

Writes byte 0xDB (65C02's STP instruction which halts the processor) to the start of the INTERPRET word. Now, everytime that word is called, the processor is halted. What INTERPRET normally does, it takes an area of memory (most likely the line buffer) and executes the words in there in order. It gets called when you press enter to execute the current line. So, with our new behavior, everytime you press enter (aka call INTERPRET) it halts the computer.

Looks like there's many ways to break my RCOS, but what do you expect, it's written in assembly

# S.I.L.O.S, 1 byte

0

Try it online!

Yes, in SILOS, your code can be made completely useless by editing the first line. With this, you can not store any variavbles (or take any input). Essentially it allocates 0 bytes of memory for the first line.

# Staq

{ '}{{}}

which redefines the noop to push entered number to stack. Then { to }.

# PowerShell

(gv ex* -v|% S*).LanguageMode=2

This doesn't work on TIO (which uses PowerShell core) but it does work on Windows PowerShell. Additional code can (attempt to) be executed directly after this (via ; or newline).

Putting PowerShell into NoLanguage mode makes it effectively useless unless you pre-defined allowable commands to execute.

• No need to count bytes. – user75200 Oct 29 '17 at 16:49
• @user75200 true, fixed – briantist Oct 29 '17 at 21:13

# Pyth (in safe mode)

D
;Dp;

Just redefines both methods of printing with the wrong arity, any attempt to print will now crash the interpreter, including implicit prints.

# Befunge 98

 v
v>"PAMI"4("zqzCzOz=z.z,z)zozszM"akMn
>

Redefines the , and . instructions to NOPS to prevent out the standard way, then redifines the = instruction to prevent execution oif an arbirtrary program, then redefines the o instruction to prevent file output and the q instruction to prevent output by exit code, then redefines the C,O,M,and ) instructions to prevent you from undoing its definitions. Insert your code after the > on the third line.

# Factor

Factor is a concatenative stack-based language, where all operators are words which are defined with :. Here, we kill the builtin print functions by defining them as nothing, and then redfine the macro redefiniton operator.

: stream-write ( -- ) ;
: write ( -- ) ;
: print ( -- ) ;
: . ( -- ) ;
: : ( -- ) ;

# DUP

[]⇒.[]⇒;[]⇒"[]⇒,[]⇒[]⇒'[]⇒⇒ { your code here }

Redefine the print operators, the string allocation operators, and the input operators all to noop, and then define the definition operator ⇒ as a noop.

# Staq, 20 bytes

{ }{' }{: }{; }{{}}

Redefines all I/0 instructions as NOPs

Standard Staq instructions:

: output the topmost stack value to the console as a number
; output the topmost stack value to the console as a character
' push entered number on stack
 push value of entered character on stack
{ begin function definition
} end function definition

{ }                   define  as NOP
{' }               define ' as NOP
{: }           define : as NOP
{; }       define ; as NOP
{{}}   define { as }

This way, no more functions can be defined, which would be necessary to reset the instructions to their original state. In Staq, all predefined instructions can be reset to their original state by putting them between curly braces without a space. For example, : could be reset by writing {:}. But that’s not possible anymore because the opening { is defined as }, which would result in a useless set of instructions: }:}, which in turn (due to the redefinition of :) means } }.

So, anything that gets executed after this block runs as normal, but is useless because there is neither input nor output possible anymore, and no way to define functions to restore that ability.

• No need to count the bytes, this is popularity contest, not code-golf. – user75200 Oct 29 '17 at 16:50

# Python 3 REPL

def f():
import gc
obs = gc.get_objects()
for ob in obs:
if isinstance(ob, dict) and ob is not locals() and ob is not __builtins__.__dict__ and ob is not globals():
ob.clear()
f()
#What can you do now!

• @mbomb007 It works, but only in a REPL. tio.run/nexus/… – Dennis May 5 '17 at 16:43

# JS, 11B

delete this

works with IE>8 and Edge (non-strict mode), with only workaround is exiting then reentering console to redefine them.

# Japt

$Japt=undefined$

Test it online!

• Can you replace it with $Japt=0 for savings? – CalculatorFeline Jul 10 '17 at 21:41 • Won't the embedded JavaScript still be run? – Esolanging Fruit Aug 22 '17 at 20:08 • @Oliver Yes, but there's no closing $, meaning that I can continue to add Javascript after the assignment. – Esolanging Fruit Aug 23 '17 at 4:58
• [][1] instead of undefined? :P – ASCII-only Apr 1 '19 at 10:40

# ForceLang

undef def
undef gui
undef io
undef if
undef goto
undef gotoex
undef require
undef undef

• I'm pretty sure this doesn't actually do anything, since all undef does is remove a definition created using the def command and doesn't actually change the value of any variables (or in this case constants.) – SuperJedi224 Apr 2 '19 at 1:25

# JS (updated, compatible with IE11)

console.error=eval=0

Defines console.error to be eval which is redefined to be 0, which is no function but a number.

Output isn't directly possible.

• alert is a valid output method for PPCG challenges by default. – hyper-neutrino Oct 21 '17 at 17:12
• But IE evals thus you can't alert your string. If you delete eval then try deleting console.error, you get The tab contains a modified eval function. It's possible the command program diagnostic windows won't work correctly, which is done by console.error. – user75200 Oct 29 '17 at 16:51

# Funky

for v in values({math, string, table, io, _G})
for k in keys(v)
v[k] = nil

This nukes the math functions, then the string, table, and IO functions, and finally, cleans out the _G table.

The math functions are actually what's called when operators are used, so without them, most functionality is gone. But you can do math with table functions, if you get smart, so they're nuked too.

When the _G table is cleared, all forms of IO are finally also gone, and the getMetaFunc function is also nuked, which causes errors if most things happen.

After this, the language is entirely unusable.

Try it online!

# Staq, elaborated more

{: }{; }{' }{" }{ }{{}}
{: }                    redefine : to NOP
{; }                redefine ; to NOP
{' }            redefine ' to NOP
{" }        redefine " to NOP
{ }    redefine  to NOP
{{}}redefine { to }

If we didn't use {{}}, {:} can be used for restoring predefined characters.

## Lua (5.1.5), 9 bytes

print=nil

Not sure if this counts. (Because it can still, for example, add 2 numbers, you just can't see the result (not even in the REPL) because print() doesn't work.)

• Actually with io.write(2+3) you can see the result. Though in REPL you will also get the error after the output. – manatwork Sep 10 '19 at 17:55
• In the latest version of Lua, io.write works without error. Also, Lua's I/O functionality is still there, so you could still write to a file the results of doing useful stuff. – ouflak Oct 10 '19 at 8:27

# HP48 calculator family

OFF

Turns the calculator off.

# JavaScript (Node.js), 23 bytes

for(y in this)this[y]=0

Try it online!

This script works almost universally unlike other JS examples here. I think I could probably shorten this using regex matching.

• Doesn't really work with V8 in browsers unfortunately – Redwolf Programs Dec 1 '20 at 20:01

# Rust

macro_rules! toilet{
($($_:tt)*)=>{}
}

fn main(){
toilet!{
}
}

Try it online!

I defined a toilet macro that causes the compiler to delete any code inside of it. Anything, including the main function, can be deleted in this manner.

use std::alloc::{GlobalAlloc,Layout};
struct EvilAlloc{}
unsafe impl GlobalAlloc for EvilAlloc{
unsafe fn alloc(&self,_:Layout)->*mut u8{
std::ptr::null_mut()
}
unsafe fn dealloc(&self,_:*mut u8,_:Layout){}
}
#[global_allocator]
static EVIL: EvilAlloc = EvilAlloc{};

Try it online!

This one creates and sets a malicious global allocator that will always fail or leak memory.

# Spice

A couple of ways:

## 1. ALS

;@
ALS LOD OUT;
ALS SUB BRK;
ALS MUL NUL;

New code goes at the end.

### Explanation

The first character of a spice program defines the delimiter, in this case ; which is usually followed by all variable definitions before @ denotes the beginning of operations on those variables.

ALS allows aliasing operations to other names, so here we overwrite some builtin operations with other. Because OUT, SWI, BRK and NUL are the only operations that don't require a variable as at least one argument, by aliasing them to pre-existing operations we make it impossible to invoke them, as aliases are resolved first.

## 2. Poorly defined delimiter

 @

### Explanation

We define the delimiter as a space, making invoking any operation cause a runtime exception in the interpreter: this is the equivalent of writing code similar to:

;var1;@

which is nonsensical in Spice.

# Java

Building upon https://codegolf.stackexchange.com/a/61124/40787's input I saw that there is just too much boilerplate and reflection.

You can insert the code after the comment.

## Edit

Saw this wasn't a strict code-golf, so prettied it a bit

import static java.lang.Thread.*;

import java.io.*;
import java.lang.reflect.Proxy;

import sun.misc.*;

public class Jail {

public static void main(String[] a) {
//user code here :D
//Remember, do not do anything funky!
}

static {
// From the original Java submission
System.setOut(new PrintStream(new ByteArrayOutputStream()));
System.setErr(new PrintStream(new ByteArrayOutputStream()));
System.setIn(new ByteArrayInputStream(new byte[0]));

// Block all access
SharedSecrets.setJavaIOAccess(b(JavaIOAccess.class));
SharedSecrets.setJavaLangAccess(b(JavaLangAccess.class));
SharedSecrets.setJavaSecurityAccess(b(JavaSecurityAccess.class));

//prevent throw new Error(output to show)
setDefaultUncaughtExceptionHandler(b(UncaughtExceptionHandler.class));

// Seal the deal
System.setSecurityManager(new SecurityManager());
}

static <T> T b(Class<T> t) {
return (T) Proxy.newProxyInstance(null, new Class[]{t}, (p, m, a) -> null);
}
}

## Original

import static java.lang.Thread.*;
import java.io.*;
import java.lang.reflect.*;
import sun.misc.*;

class X {

static SharedSecrets s;

public static void main(String[] a) throws IOException {
// From the original Java submission
a=null;
System.setOut(new PrintStream(new ByteArrayOutputStream()));
System.setErr(new PrintStream(new ByteArrayOutputStream()));
System.setIn(new ByteArrayInputStream(new byte[0]));

// Block all access
s.setJavaIOAccess(b(JavaIOAccess.class));
s.setJavaLangAccess(b(JavaLangAccess.class));
s.setJavaSecurityAccess(b(JavaSecurityAccess.class));

//prevent throw new Error(output to show)
setDefaultUncaughtExceptionHandler(b(UncaughtExceptionHandler.class));

// Seal the deal
System.setSecurityManager(new SecurityManager());

//user code here :D
//Remember, do not do anything funky!

}

static <T> T b(Class t) {
return (T) Proxy.newProxyInstance(null, new Class[]{t}, (p, m, a) -> {
throw null;
});
}
}

If you write normal language syntax, it still works (mostly). Also, opening files or trying to reset the streams is frowned upon. Just wanted to get some lower number Java submissions.

# Groovy

java.lang.Class.metaClass = Integer.metaClass
Integer.metaClass.plus = { Integer n ->     return 'a' }
Integer.metaClass.minus = { Integer n ->     return 's' }
Integer.metaClass.multiply = { Integer n ->     return 'd' }
Integer.metaClass.div = { Integer n ->     return 'f' }

I tried (without success) to overwrite the print commands, so I redefined the Object instead :)

# Javascript

for(let q in this)delete this[q];

which deletes each property of this.

Or,

eval=0;

assigning 0 to eval, thus any input raises this:

The tab contains a modified eval function. It's possible, the command program diagnostic windows don't work correctly.

thus being irreversible by even restarting developer tools!

• only works in IE>10. – user75200 Oct 29 '17 at 16:48
• eval=0 doesn't seem to work. – A username Apr 5 at 0:55

# Crystal, 44 bytes

fun main(a : Int32,b : UInt8**) : Int32 0end

Try it online!

Works by overwriting the main function, so that rather than actually running code, it simply returns. Code can be inserted at any point after that, and it will simply be ignored.

# C (gcc), 136 bytes

#include <stdlib.h>
#include <signal.h>
__attribute__((constructor))
void enable_io()
{
// Make it clear that we are ready for IO
raise(SIGPOLL);
}

Try it online!

Place it after any C file using libc (or LD_PRELOAD it for dynamically linked programs 😉)

#include <stdio.h>
int main()
{
puts("hello");
}

(note that the program did not output this, it is the shell):

\$ ./a.out
I/O possible

The __attribute__((constructor)) is a feature that allows GCC to inject functions before main() runs, and we exit the program before main() by raising a signal saying that I/O is possible, making I/O impossible.

exit(0) works as well, but this is funnier.

# CSS, 14 bytes

*{display:none

Pretty simple stuff. This selects every single HTML element and sets its display mode to "none", rendering it invisible and useless. The web page becomes a blank white void. Not only does this render all CSS in the file unusable, but the HTML in which the stylesheet is referenced as well (unless overidden elsewhere).

Below is an example of a regular HTML document:

<!DOCTYPE html>

Paragraph

This is the same thing, now with the broken styles added. Notice the absence of any content.

<!DOCTYPE html>

format: plain


text:
99-133 Raphael Cerf, Agoston Pisztora
On the Wulff crystal in the Ising model (1124K, Postscript) Apr 28, 99
Abstract , Paper (src), View paper (auto. generated ps), Index of related papers

Abstract. We study the phase separation phenomenon in the Ising model in dimensions $d\ge 3$. To this end we work in a large box with plus boundary conditions and we condition the system to have an excess amount of negative spins so that the empirical magnetization is smaller than the spontaneous magnetization $m^*$. We confirm the prediction of the phenomenological theory by proving that with high probability a single droplet of the minus phase emerges surrounded by the plus phase. Moreover, the rescaled droplet is asymptotically close to a definite deterministic shape -- the Wulff crystal -- which minimizes the surface free energy. In the course of the proof we establish a surface order large deviation principle for the magnetization. Our results are valid for temperatures $T$ below a limit of slab-thresholds $\tchat$ conjectured to agree with the critical point $T_c$. Moreover, $T$ should be such that there exist only two extremal translation invariant Gibbs states at that temperature; a property which can fail for at most countably many values and which is conjectured to be true for every $T$. The proofs are based on the Fortuin-Kasteleyn representation of the Ising model along with coarse-graining techniques. To handle the emerging macroscopic objects we employ tools from geometric measure theory which provide an adequate framework for the large deviation analysis. Finally, we give a heuristic argument that for subcritical temperatures close enough to $T_c$, the dominant minus spin cluster of the Wulff droplet {\it permeates} the entire box and and has a strictly positive local density everywhere.

Files: 99-133.ps


text:
August 7, 2022

# Generating Random Floats in [0, 1)

Recently, I found myself in a situation where I needed to generate a random float between 0 and 1 using a random 32-bit integer in C. This subject has been done to death before, but I felt like feeling a little pain so I decided to figure it out myself before using someone else's better solution.

First things first: we actually need to obtain some random integers. Easy, right? We'll just call rand() and—

rand() is known to have a number of problems; here's a short list:

• If you use glibc like me, your rand() uses a Linear Congruential Generator. LCGs are very simple, but they are prone to subtle correlation issues that tend to manifest when applied to a multidimensional problem, such as Monte Carlo simulations.
• srand() takes an unsigned int, restricting the number of possible sequences you can get from rand() to number of distinct seeds that you can provide. For reference most quality PRNGs have an internal state of at least 128 bits, which is almost certainly larger than the size of an unsigned int on your platform.
• rand() is not thread safe; calling it will result in reads and writes to a shared location. Not only will this affect performance, it will also cause insidious randomness issues that may choose to emerge at the most inconvenient time. rand_r() allows the user to provide a pointer that will be used to store the PRNG's state, allowing thread-safe code to be written, but many programmers are seemingly not aware of this fact.

Okay, so rand() is not as horrible as I've made it out to be. Don't get me wrong—rand() is pretty crappy, but if you generated 100 random numbers and stared at it, it would probably look pretty random. So rand() might be okay for use cases where high quality randomness is not required (such as a game), but if you try subjecting it to rigorous statistical tests it crumples like wet toilet paper.

Today, we're going to be using xoshiro128+ as our PRNG. Admittedly, the choice of PRNG is not actually that important, which may come as a surprise after my rant about rand(). However, as long as you are not using a crappy or obscure generator, there are plenty of very fast, well-proven generators that are probably sufficient for your application.

# Introducing Floating Point §

Okay, great. So now we have a random uint32_t... how do we turn this into a random float?

The naïve solution is to just divide the integer by the maximum value (232), but this is not great for two reasons:

• Division is slow.
• This requires casting the integer to a float, but floats themselves are also 32 bits, so a float could not possibly represent all 32-bit integers. You can avoid this precision loss by casting to a double, but that just makes the first issue worse.

Instead, what we want to do is create a floating point number using bitwise operations. To do that, we need to familiarize ourselves with how floating point values are represented in memory; specifically, we're going to be focusing on IEEE 754, which is sort of required in the C standard.

If you ever learned scientific notation in school, a floating point number is a lot like that. Basically, three fields are packed together: the sign bit, the exponent, and the integer. The function of the sign bit is very simple; 0 is positive and 1 is negative. The real value represented by a float is basically equal to $\mathrm{fraction} \times 2^\mathrm{exponent}$.

There are a few pitfalls that we need to be aware of, however:

• The exponent is stored with an offset of 127, so an exponent of 0 is equal to -127, an exponent of 127 is equal to 0, and an exponent of 255 is equal to 128.
• The fraction section is interpreted as if there was an additional 1 bit in front of it.

In this case, the exponent portion is equal to $124 - 127 = -3$, and the fraction section is equal to $1.01_2 = 1.25$. Thus, the overall value is equal to $2^{-3} \times 1.25 = 0.15625$.

# Actually Generating Floats §

As usual, I've managed to stretch what ought to be a simple blogpost into a long-winded rag about unrelated stuff... bummer. Okay, let's actually generate some floats.

We can start by drawing 23 bits from our PRNG for the fraction part. This is easy enough; we just take a 32-bit value and shift it right 9 bits. This gives us a random fraction value between $1.000\ldots_2 = 1$ and $1.111\ldots_2 \approx 2$.

If we set the exponent portion to 0, the fraction portion will be multipled with $2^0 = 1$, giving us a random number in the range $[1, 2)$. We can easily turn into our desired value in range $[0, 1)$ by subtracting 1.

Here's the actual code:

float int_to_float(uint32_t random) {
union { uint32_t u32; float f; } u = { .u32 = random >> 9 | 0x3f800000 };
return u.f - 1.0;
}

0x3f800000 is what we get when we take our exponent (0 is represented as 127) and shift it right 23 bits so that it's in the right place.

We could use plain old floating point multiplication instead of type punning, though there is a chance that it will be imperceptibly slower than our hacky solution. Probably not. Whatever.

You can find the full code demonstrating this concept here. That's all, folks.


text:
# Cartan's lemma

In mathematics, Cartan's lemma refers to a number of results named after either Élie Cartan or his son Henri Cartan:

• In exterior algebra:[1] Suppose that v1, ..., vp are linearly independent elements of a vector space V and w1, ..., wp are such that
$v_1\wedge w_1 + \cdots + v_p\wedge w_p = 0$
in ΛV. Then there are scalars hij = hji such that
$w_i = \sum_{j=1}^p h_{ij}v_j.$
\begin{align} K_1 &= \{ z_1=x_1+iy_1 | a_2 < x_1 < a_3, b_1 < y_1 < b_2\} \\ K_1' &= \{ z_1=x_1+iy_1 | a_1 < x_1 < a_3, b_1 < y_1 < b_2\} \\ K_1'' &= \{ z_1=x_1+iy_1 | a_2 < x_1 < a_4, b_1 < y_1 < b_2\} \end{align}
so that $K_1 = K_1'\cap K_1''$. Let K2, ..., Kn be simply connected domains in C and let
\begin{align} K &= K_1\times K_2\times\cdots \times K_n\\ K' &= K_1'\times K_2\times\cdots \times K_n\\ K'' &= K_1''\times K_2\times\cdots \times K_n \end{align}
so that again $K = K'\cap K''$. Suppose that F(z) is a complex analytic matrix-valued function on a rectangle K in Cn such that F(z) is an invertible matrix for each z in K. Then there exist analytic functions $F'\,$ in $K'\,$ and $F''\,$ in $K''\,$ such that
$F(z) = F'(z)/F''(z)\,$
in K.

## References

1. ^ *Sternberg, S. (1983). Lectures on Differential Geometry ((2nd ed.) ed.). New York: Chelsea Publishing Co. p. 18. ISBN 0-8218-1385-4. OCLC 43032711.
2. ^ Robert C. Gunning and Hugo Rossi (1965). Analytic Functions of Several Complex Variables. Prentice-Hall.


text:
## Calculus with Applications (10th Edition)

$$y=\frac{2x^{2}+3}{x^{3}-1}$$ The line with equation $x=1$ as vertical asymptotic. The line $y=0$ is a horizontal asymptotic. The y-intercept is -3 This is graph $C$.
$$y=\frac{2x^{2}+3}{x^{3}-1}$$ The value $x= 1$ makes the denominator 0, but not the numerator, so the line with equation $$x=1$$ as vertical asymptotic. To find a horizontal asymptotic, let $x$ get larger and larger, so that $$y=\lim _{x \rightarrow \infty} \frac{2x^{2}+3}{x^{3}-1} =0$$ This means that the line $y=0$ is a horizontal asymptotic. When $x=0$ the y-intercept is -3 This is graph $C$.


text:
# Evaluating a definite integral using residue theorem

I am trying to show $$\int_0^{\infty} \frac{\log (x)}{(x^2+1)^2}$$. We can use the integrand $$g(z) = \frac{\log(z)}{(x^2+1)^2}$$ defining log as $$\log(\rho e^{i\theta}) = \log(\rho) + i\theta$$ and letting $$\theta \in [0,2\pi]$$

Now, I know that the singularities of the integrand occur at $$i,-i$$ one being in the upper half plane, the other in the lower half plane.

Typically the counter used for integrands which require choosing a branch cut of log is a half donut shape on the upper plane. Since there is a singularity no on the lower half plane, do I ignore it or include the residue of it in the calculation?

Also, I believe the singularities to be poles of order 3 and I do not know how to calculate residues for them. Is there an explicit formula like there is for simple poles?

The poles in this case will be of order $$2$$. A residue for a pole of order at most $$m$$ can be found from $$Res(f,z_0)=\frac1{(m-1)!}\lim_{z\to z_0}\frac{d^{m-1}}{dz^{m-1}}(z-z_0)^mf(z)$$ which for large $$m$$ can be frustrating but should be OK in this case.
• so would I have $$Res(g,z_0) = \lim_{z \rightarrow i} 2(z-z_0) [\frac{(z^2+1)^2}{z}-log(z)4z(z^2+1)]\frac{1}{(z^2+1)^3}$$ and if so wouldnt this limit be zero? – dc3726 Dec 4 '18 at 2:05
• I can't follow your differentiation. Remember that in this case $z_0=i$, and that $$(z-z_0)^2f(z)=\frac{(z-i)^2}{(z^2+1)^2}\log z\ ,$$ simplify first then differentiate. The answer might be zero, I haven't worked it out. – David Dec 4 '18 at 3:00
You are trying to show... what? $$\begin{eqnarray*}\int_{0}^{+\infty}\frac{\log(x)}{(1+x^2)^2}\,dx &=& \int_{0}^{1}\frac{\log x}{(1+x^2)^2}\,dx+\underbrace{\int_{0}^{1}\frac{-x^2\log(x)}{(1+x^2)^2}\,dx}_{x\mapsto 1/x}\\&=&\int_{0}^{1}\frac{1-x^2}{(1+x^2)^2}\log(x)\,dx\end{eqnarray*}$$ and since $$\forall x\in(0,1),\qquad \frac{1-x^2}{(1+x^2)^2}=\sum_{n\geq 0}(-1)^n (2n+1) x^{2n},$$ $$\int_{0}^{1}x^{2n}\log(x)\,dx = -\frac{1}{(2n+1)^2}$$ we have: $$\int_{0}^{+\infty}\frac{\log x}{(1+x^2)^2}\,dx = -\sum_{n\geq 0}\frac{(-1)^n}{2n+1}=-\arctan(1)=\color{red}{-\frac{\pi}{4}}.$$ We do not strictly need Complex Analysis.


text:
Lemma 69.23.4. In Situation 69.23.1. Let $f : X \to Y$ be a morphism of algebraic spaces quasi-separated and of finite type over $B$. Let

$\vcenter { \xymatrix{ X \ar[r] \ar[d] & W \ar[d] \\ B \ar[r] & B_{i_1} } } \quad \text{and}\quad \vcenter { \xymatrix{ Y \ar[r] \ar[d] & V \ar[d] \\ B \ar[r] & B_{i_2} } }$

be diagrams as in (69.23.2.1). Let $X = \mathop{\mathrm{lim}}\nolimits _{i \geq i_1} X_ i$ and $Y = \mathop{\mathrm{lim}}\nolimits _{i \geq i_2} Y_ i$ be the corresponding limit descriptions as in Lemma 69.23.3. Then there exists an $i_0 \geq \max (i_1, i_2)$ and a morphism

$(f_ i)_{i \geq i_0} : (X_ i)_{i \geq i_0} \to (Y_ i)_{i \geq i_0}$

of inverse systems over $(B_ i)_{i \geq i_0}$ such that such that $f = \mathop{\mathrm{lim}}\nolimits _{i \geq i_0} f_ i$. If $(g_ i)_{i \geq i_0} : (X_ i)_{i \geq i_0} \to (Y_ i)_{i \geq i_0}$ is a second morphism of inverse systems over $(B_ i)_{i \geq i_0}$ such that such that $f = \mathop{\mathrm{lim}}\nolimits _{i \geq i_0} g_ i$ then $f_ i = g_ i$ for all $i \gg i_0$.

Proof. Since $V \to B_{i_2}$ is of finite presentation and $X = \mathop{\mathrm{lim}}\nolimits _{i \geq i_1} X_ i$ we can appeal to Proposition 69.3.10 as improved by Lemma 69.4.5 to find an $i_0 \geq \max (i_1, i_2)$ and a morphism $h : X_{i_0} \to V$ over $B_{i_2}$ such that $X \to X_{i_0} \to V$ is equal to $X \to Y \to V$. For $i \geq i_0$ we get a commutative solid diagram

$\xymatrix{ X \ar[d] \ar[r] & X_ i \ar[r] \ar@{..>}[d] \ar@/_2pc/[dd] |!{[d];[ld]}\hole & X_{i_0} \ar[d]^ h \\ Y \ar[r] \ar[d] & Y_ i \ar[r] \ar[d] & V \ar[d] \\ B \ar[r] & B_ i \ar[r] & B_{i_0} }$

Since $X \to X_ i$ has scheme theoretically dense image and since $Y_ i$ is the scheme theoretic image of $Y \to B_ i \times _{B_{i_2}} V$ we find that the morphism $X_ i \to B_ i \times _{B_{i_2}} V$ induced by the diagram factors through $Y_ i$ (Morphisms of Spaces, Lemma 66.16.6). This proves existence.

Uniqueness. Let $E_ i \to X_ i$ be the equalizer of $f_ i$ and $g_ i$ for $i \geq i_0$. We have $E_ i = Y_ i \times _{\Delta , Y_ i \times _{B_ i} Y_ i, (f_ i, g_ i)} X_ i$. Hence $E_ i \to X_ i$ is a monomorphism of finite presentation as a base change of the diagonal of $Y_ i$ over $B_ i$, see Morphisms of Spaces, Lemmas 66.4.1 and 66.28.10. Since $X_ i$ is a closed subspace of $B_ i \times _{B_{i_0}} X_{i_0}$ and similarly for $Y_ i$ we see that

$E_ i = X_ i \times _{(B_ i \times _{B_{i_0}} X_{i_0})} (B_ i \times _{B_{i_0}} E_{i_0}) = X_ i \times _{X_{i_0}} E_{i_0}$

Similarly, we have $X = X \times _{X_{i_0}} E_{i_0}$. Hence we conclude that $E_ i = X_ i$ for $i$ large enough by Lemma 69.6.10. $\square$

In your comment you can use Markdown and LaTeX style mathematics (enclose it like $\pi$). A preview option is available if you wish to see how it works out (just click on the eye in the toolbar).


text:
# How to render a large tile-based 2D world efficiently (using JavaFX/ScalaFX or more generally)

I have a file tileset.png containing a dozen 32*32 tiles. When my game starts, it generates the world randomly with the available tiles and the size of the world can be changed, so I cannot have a hard-coded world texture.

So I have an $n \times m$ matrix, each of its element being a Tile. For the moment a so-called Tile is an ImageView(in JavaFX), which basically is a portion of my tileset (note that I only load the tileset image once and then generate all my tiles using it).

Now the very basic method that I'm using is, I store a boolean for each tile saying whether it is currently displayed on the screen. I also keep track of the total scale, that is the total amount of pixels that have been dragged yet. From this, for each tile that is to be displayed on the screen, I compute its $(x,y)$ position given the total offset and I add it to the scenne. Also for each tile that was displayed at the previous "iteration" but is not anymore, I remove it from the scene.

It is however quite laggy, especially when a lot of tiles need to be displayed at the same time or when dragging the map a lot.

I am sure I can drastically improve the performances but I cannot find how. I guess that having a different object for each tile isn't very efficient, yet as said before, I cannot have the entire map as a single image as it is randomly generated. So.. I still need each tile to be an object somehow?

I also saw a few things about using meshes or UV-mapping but I didn't really understand how to make it work here. Also, it was help for Unity. If anyone knows how to implement this in JavaFX/ScalaFX I would be glad to know, but otherwise I think I could adapt a general method in this specific library.

• I think you're only slowing things down with constantly adding/removing nodes from the scene. JavaFX already takes care of that for you by using dirty region optimizations (nodes that are off-screen or that don't change aren't rendered again every frame). You could also try to draw several nodes into one bigger tile with WritableImage when building your map. If JavaFX in general is not fast enough for you, have a look at LibGDX or JMonkeyEngine. – Ignatiamus Apr 5 '18 at 8:49

You can draw your tiles with the Canvas node. You can still use your tile set for this method. You just have to call the drawImage(image, sX, sY, sW, sH, dX, dY, dW, dH) method from the GraphicsContext of the canvas node. The s parameters are for defining a view on your image (like an ImageView). The d parameters are for sizing and positiong the resulting image on the canvas.