Clear all

1 Posts
1 Users
0 Likes
0 Views
Illustrious Member
Joined: 4 months ago
Posts: 57376
Topic starter

i am losing my mind. I am trying to create an obj parser has a way to learn opengl but i have ran into a brick wall. i can seem to get textures to map to the mesh correctly. its been two weeks if anyone here knows the answer please tell me 🙂

--Result--

--Obj parser code--

``````using OpenTK.Mathematics;
using System.Runtime.InteropServices;

using Core.Common.Objects;

namespace Core.Common
{
{
public (List<Vector3> verts, List<Vector2> tex, int[] indices) LoadObj(string path)
{
List<Vector3> Positions = new List<Vector3>();
List<Vector2> texCoords = new List<Vector2>();

List<int> position_Indices = new List<int>();
List<int> texture_Indices = new List<int>();

int[] indicesArray = null;
vertex[] vertices = null;

Console.ForegroundColor = ConsoleColor.DarkBlue;
Console.ResetColor();

foreach (string line in lines)
{
string[] parts = line.Split(' ');

switch (parts[0])
{
case "v":
Vector3 pos = new Vector3(Convert.ToSingle(parts[1]), Convert.ToSingle(parts[2]), Convert.ToSingle(parts[3]));
break;

case "vt":
Vector2 texture = new Vector2(Convert.ToSingle(parts[1]), Convert.ToSingle(parts[2]));
break;

case "f":
string[] vertex1 = parts[1].Split('/');
string[] vertex2 = parts[2].Split('/');
string[] vertex3 = parts[3].Split('/');

int index1 = Int32.Parse(vertex1[0]) - 1;
int index2 = Int32.Parse(vertex2[0]) - 1;
int index3 = Int32.Parse(vertex3[0]) - 1;

int texIndex1 = Int32.Parse(vertex1[1]) - 1;
int texIndex2 = Int32.Parse(vertex2[1]) - 1;
int texIndex3 = Int32.Parse(vertex3[1]) - 1;

break;
}
}

indicesArray = new int[position_Indices.Count];
vertices = new vertex[position_Indices.Count];

for (int i = 0; i < vertices.Length; i++)
{
vertices[i].pos = Positions[position_Indices[i]];
vertices[i].tex = texCoords[texture_Indices[i]];
}

for (int i = 0; i < position_Indices.Count; i++)
{
indicesArray[i] = position_Indices[i];
}

return (Positions, texCoords, indicesArray); //return modeldata and faces
}

}
}
``````

--Rendering code--

``````using OpenTK.Graphics.OpenGL4;
using OpenTK.Mathematics;
using System.Runtime.InteropServices;

using Core.Common.Objects;
using Core.Render;

namespace Core.Common
{
{
private List<int> vbos = new List<int>();
private List<int> vaos = new List<int>();

public RawModel loadModel(List<Vector3> verts, List<Vector2> tex, int[] indices, string texPath)
{
int vao = createVAO();
bindIndicesBuffer(indices);
storeDataInPosAttribList(0, 3, verts, vertex.Stride);
storeDataInTexAttribList(1, 2, tex, vertex.Stride);
unbindVAO();
return new RawModel(vao, indices.Length);
}

private int createVAO()
{
int vao = GL.GenVertexArray();
GL.BindVertexArray(vao);
return vao;
}

{
Texture texture;
texture.Use(TextureUnit.Texture0);
}

private void storeDataInPosAttribList(int attribNum, int size, List<Vector3> verts, int stride)
{
int vbo = GL.GenBuffer();
GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
GL.BufferData(BufferTarget.ArrayBuffer, stride * Vector3d.SizeInBytes, verts.ToArray(), BufferUsageHint.StaticDraw);
GL.VertexAttribPointer(attribNum, size, VertexAttribPointerType.Float, false, 0, 0);
GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
}

private void storeDataInTexAttribList(int attribNum, int size, List<Vector2> tex, int stride)
{
int vbo = GL.GenBuffer();
GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
GL.BufferData(BufferTarget.ArrayBuffer, stride * Vector2.SizeInBytes, tex.ToArray(), BufferUsageHint.StaticDraw);
GL.VertexAttribPointer(attribNum, size, VertexAttribPointerType.Float, false, 0, 0);
GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
}

private void unbindVAO()
{
GL.BindVertexArray(0);
}

private void bindIndicesBuffer(int[] indices)
{
int vbo = GL.GenBuffer();
GL.BindBuffer(BufferTarget.ElementArrayBuffer, vbo);
GL.BufferData(BufferTarget.ElementArrayBuffer, indices.Length * sizeof(int), indices, BufferUsageHint.StaticDraw);
}

public void cleanUP()
{
foreach (var item in vaos)
{
GL.DeleteVertexArray(item);
}

foreach (var item in vbos)
{
GL.DeleteBuffer(item);
}

}

}
}
``````

## Prove that there does not exists an estimator for which the risk is \$0\$.

Let $$lbrace mathbb{P}_theta rbrace_{thetain Theta}, Theta subset mathbb{R}$$, be an identifiable parametric family of distributions with common support, where card$$(Theta)geq 2$$. Consider the family of estimators $$Delta = lbrace delta(textbf{X}): mathbb{E}_theta delta^2 and the loss function $$L(theta,a)=(theta-a)^2$$. Prove that there does not exist an estimator $$delta(textbf{X})$$ for which $$R(theta,delta)=0,theta in Theta$$.

So I suppose that there exists an estimator $$delta(textbf{X})$$ for which $$R(theta,delta)=0,theta in Theta$$. Since the loss function is non-negative, then it concludes that $$delta(textbf{X}) = theta$$ almost surely. I don’t know if it is true, because I think that $$theta(textbf{X})$$ cannot take many values. If yes, then what can I do next to show the contradictory? I want to show that for all $$x$$ in $$Omega$$, $$f(x;theta_1)=f(x;theta_2)$$ so it contradicts the definition of identifiable parametric family, but I am not sure how.

## Proof that all Quotient Groups are Abelian- where is my error?

I’m having trouble finding the error in my proof:

Theorem: If H is a normal subgroup of G, then the quotient group G/H is abelian.

Proof: $$forall x, y in G$$, $$xy(yx)^{-1} = xyy^{-1}x^{-1} = e in H$$. By the lemma, $$H(xy) = H(yx)$$, thus $$HxHy= HyHx$$. This shows that the commutative property holds for all the elements in the quotient group G/H, therefore G/H is abelian.

Lemma: Let H be a subgroup of G. Then $$Ha = Hb iff ab^{-1} in H$$. Proof: We start with the $$Rightarrow$$ direction. $$Ha = Hb$$ implies $$a in Hb$$, thus $$a=hb$$ for some $$h in H$$. Therefore $$ab^{-1} = h in H$$. For the reverse direction, if $$ab^{-1} = h in H$$ then $$a=hb$$ for some $$h in H$$. Thus $$a in Hb$$, and since we also have $$a in Ha$$, $$Ha = Hb$$ (because cosets partition a group).

## PDF hyperlink has spaces, works in ArcGIS Pro but not on ArcGIS Online

The other option I’ve found is to create a new field using Arcade How To: Add PDF files as hyperlinks in ArcGIS Online Map Viewer pop-ups but I don’t know Arcade and I’m having trouble understanding the instructions. I don’t know if it matters, but not all the links are broken and not all of them are PDFs.

Is there a way to fix this in Map Viewer? Why do the links work in Pro but not AGOL? Do I have to go into my data and get new links?

## Before-skip alignment problems with Tasks package; particularly when nested within an enumerate list

When a `tasks` environment is positioned within an enumerate list, there is a misalignment; tasks will sit below the enumeration item:

``````documentclass{article}

begin{document}

begin{enumerate}
item

end{enumerate}

end{document}

``````

Even if you provide a `before-skip`, I have offered a ridiculous one for example, this cannot be adjusted; the `before-skip` seems to provide no effect.

Desired outcome is for the tasks list (a, b, c) to sit vertically flush with the enumerate (1., 2., 3.).

Just FYI: I cannot define 1., 2. and 3. with tasks; I need to use the enumerate list for the highest level of items for other reasons external to this. I am currently doing this very inefficiently with `vspace{}` before the tasks which is what I wish to eliminate if possible.

I think it’s the first time, that I ask a question here, since I found an answer for all previous issues.
I upgraded my xubuntu 20.04 to 22.04 (and then on commandline to 22.10, because I hoped, the problem will solve itself. But it remains).
I can login from a text terminal but never more from lightdm. I enter my credentials, and then I see the background-image, the mouse-pointer can be moved, but nothing else is displayed. Restarting lightdm.service lets login me again, but the behavior is the same.
I also tried to switch to gdm3 (like suggested here), but it has the same effect (except the mouse freezes too).
The .xsession-errors has only a few entries:

``````dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
dbus-update-activation-environment: setting DISPLAY=:0
dbus-update-activation-environment: setting XAUTHORITY=/home/wolfgang/.Xauthority
dbus-update-activation-environment: setting QT_ACCESSIBILITY=1 looks normal so far,
``````

also dmesg and syslog dont show any hint. Where could I continue the research?

This is the Xorg.0.log (Part1):

``````[   232.736]
X.Org X Server 1.21.1.4
X Protocol Version 11, Revision 0
[   232.736] Current Operating System: Linux merlin 5.19.0-35-generic #36-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 3 18:36:56 UTC 2023 x86_64
[   232.736] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.19.0-35-generic root=UUID=696192c7-692f-4e04-9022-fd082eef9987 ro vga=0x31f
[   232.736] xorg-server 2:21.1.4-2ubuntu1.6 (For technical support please see http://www.ubuntu.com/support)
[   232.736] Current version of pixman: 0.40.0
[   232.736]    Before reporting problems, check http://wiki.x.org
[   232.736] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   232.736] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Mar 21 22:05:48 2023
[   232.737] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   232.737] (==) No Layout section.  Using the first Screen section.
[   232.737] (==) No screen section available. Using defaults.
[   232.737] (**) |-->Screen "Default Screen Section" (0)
[   232.737] (**) |   |-->Monitor "<default monitor>"
[   232.738] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[   232.738] (==) Automatically adding devices
[   232.738] (==) Automatically enabling devices
[   232.738] (==) Automatically adding GPU devices
[   232.738] (==) Automatically binding GPU devices
[   232.738] (==) Max clients allowed: 256, resource mask: 0x1fffff
[   232.738] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[   232.738]    Entry deleted from font path.
[   232.738] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[   232.738]    Entry deleted from font path.
[   232.738] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[   232.738]    Entry deleted from font path.
[   232.738] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[   232.738]    Entry deleted from font path.
[   232.738] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[   232.738]    Entry deleted from font path.
[   232.738] (==) FontPath set to:
/usr/share/fonts/X11/misc,
/usr/share/fonts/X11/Type1,
built-ins
[   232.738] (==) ModulePath set to "/usr/lib/xorg/modules"
[   232.738] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[   232.738] (II) Loader magic: 0x5570cf6f1020
[   232.738] (II) Module ABI versions:
[   232.738]    X.Org ANSI C Emulation: 0.4
[   232.738]    X.Org Video Driver: 25.2
[   232.738]    X.Org XInput driver : 24.4
[   232.738]    X.Org Server Extension : 10.0
[   232.739] (++) using VT number 7

[   232.740] (II) xfree86: Adding drm device (/dev/dri/card0)
[   232.740] (II) Platform probe for /sys/devices/pci0000:00/0000:00:09.0/0000:02:00.0/drm/card0
[   232.744] (--) PCI:*(2@0:0:0) 1002:68f9:174b:e127 rev 0, Mem @ 0xe0000000/268435456, 0xfbfe0000/131072, I/O @ 0x0000e000/256, BIOS @ 0x????????/131072
[   232.745] (II) Module glx: vendor="X.Org Foundation"
[   232.745]    compiled for 1.21.1.4, module version = 1.0.0
[   232.745]    ABI class: X.Org Server Extension, version 10.0
[   232.745] (II) Applying OutputClass "Radeon" to /dev/dri/card0
[   232.745] (==) Matched radeon as autoconfigured driver 0
[   232.745] (==) Matched ati as autoconfigured driver 1
[   232.745] (==) Matched modesetting as autoconfigured driver 2
[   232.745] (==) Matched fbdev as autoconfigured driver 3
[   232.745] (==) Matched vesa as autoconfigured driver 4
[   232.745] (==) Assigned the driver to the xf86ConfigLayout
[   232.746] (II) Module radeon: vendor="X.Org Foundation"
[   232.746]    compiled for 1.21.1.3, module version = 19.1.0
[   232.746]    Module class: X.Org Video Driver
[   232.746]    ABI class: X.Org Video Driver, version 25.2
[   232.746] (II) Module ati: vendor="X.Org Foundation"
[   232.746]    compiled for 1.21.1.3, module version = 19.1.0
[   232.746]    Module class: X.Org Video Driver
[   232.746]    ABI class: X.Org Video Driver, version 25.2
[   232.746] (II) Module modesetting: vendor="X.Org Foundation"
[   232.746]    compiled for 1.21.1.4, module version = 1.21.1
[   232.746]    Module class: X.Org Video Driver
[   232.746]    ABI class: X.Org Video Driver, version 25.2
[   232.747] (II) Module fbdev: vendor="X.Org Foundation"
[   232.747]    compiled for 1.21.1.3, module version = 0.5.0
[   232.747]    Module class: X.Org Video Driver
[   232.747]    ABI class: X.Org Video Driver, version 25.2
[   232.747] (II) Module vesa: vendor="X.Org Foundation"
[   232.747]    compiled for 1.21.1.3, module version = 2.5.0
[   232.747]    Module class: X.Org Video Driver
[   232.747]    ABI class: X.Org Video Driver, version 25.2
ATI Radeon Mobility X600 (M24), ATI FireMV 2400,
ATI Radeon Mobility X300 (M24), ATI FireGL M24 GL,
ATI Radeon X600 (RV380), ATI FireGL V3200 (RV380),
ATI Radeon 9600XT, ATI FireGL T2, ATI Radeon 9650, ATI FireGL RV360,
ATI Radeon X800SE (R420), ATI FireGL X3 (R420),
ATI Mobility FireGL 7800 M7, ATI Radeon Mobility M6,
ATI FireGL Mobility 9000 (M9), ATI Radeon Mobility 9000 (M9),
ATI FireGL Mobility T2 (M10), ATI FireGL Mobility T2e (M11),
ATI FireGL M22 GL, ATI Radeon X800 (R423), ATI Radeon X800PRO (R423),
ATI FireGL V7100 (R423), ATI FireGL V5100 (R423),
ATI FireGL unknown (R423), ATI Mobility FireGL V5000 (M26),
ATI FireGL V3100 (RV370), ATI FireMV 2200 PCIE (RV370),
ATI Mobility FireGL V5100 (M28), ATI Mobility Radeon X800 (M28),
ATI Radeon X800XT (R423), ATI FireGL V5000 (RV410),
ATI Mobility Radeon X1800, ATI Mobility FireGL V7200,
ATI FireGL V7200, ATI FireGL V5300, ATI Mobility FireGL V7100,
ATI FireGL V7300, ATI FireGL V7350, ATI Radeon X1600, ATI RV505,
ATI FireGL V3350, ATI Mobility Radeon X1450,
ATI FireMV 2250, ATI Radeon X1650, ATI Mobility FireGL V5200,
ATI FireGL V3400, ATI Mobility FireGL V5250,
ATI RV560, ATI Mobility Radeon X1900, ATI Radeon X1950 GT, ATI RV570,
ATI FireGL V7400, ATI Radeon 9100 PRO IGP,
ATI RS740M, ATI Radeon HD 2900 XT, ATI Radeon HD 2900 Pro,
ATI Radeon HD 2900 GT, ATI FireGL V8650, ATI FireGL V8600,
ATI FireGL V7600, ATI Radeon 4800 Series, ATI Radeon HD 4870 x2,
ATI Radeon HD 4850 x2, ATI FirePro V8750 (FireGL),
ATI FirePro V7760 (FireGL), ATI Mobility RADEON HD 4850,
ATI Mobility RADEON HD 4850 X2, ATI FirePro RV770,
AMD FireStream 9270, AMD FireStream 9250, ATI FirePro V8700 (FireGL),
ATI FirePro M7750, ATI M98, ATI Mobility Radeon HD 4650,
ATI FirePro V7750 (FireGL), ATI FirePro V5700 (FireGL),
ATI FirePro V3750 (FireGL), ATI Mobility Radeon HD 4830,
ATI Mobility Radeon HD 4850, ATI FirePro M7740, ATI RV740,
ATI Radeon HD 2400 PRO AGP, ATI FireGL V4000, ATI Radeon HD 2350,
ATI FireGL V7700, ATI Radeon HD3690, AMD Firestream 9170,
ATI FirePro RG220, ATI Mobility Radeon 4330, ATI RV630,
ATI Radeon HD 2600 XT AGP, ATI Radeon HD 2600 Pro AGP,
ATI Radeon HD 2600 XT, ATI Radeon HD 2600 Pro, ATI Gemini RV630,
ATI Gemini Mobility Radeon HD 2600 XT, ATI FireGL V5600,
ATI FireGL V3600, ATI Radeon HD 2600 LE,
ATI Mobility FireGL Graphics Processor, ATI Radeon HD 3470,
ATI FireMV 2450, ATI Radeon HD 3600 Series, ATI Radeon HD 3650 AGP,
ATI Mobility FireGL V5700, ATI Mobility FireGL V5725,
AMD Radeon HD 6300 Series Graphics,
AMD Radeon HD 6200 Series Graphics, PALM, CYPRESS,
ATI FirePro (FireGL) Graphics Adapter, AMD Firestream 9370,
AMD Firestream 9350, ATI Radeon HD 5800 Series,
REDWOOD, ATI Mobility Radeon Graphics, CEDAR, ATI FirePro 2270,
AMD Radeon HD 6800 Series, AMD Radeon HD 6700 Series, TURKS, CAICOS,
ARUBA, TAHITI, PITCAIRN, VERDE, OLAND, HAINAN, BONAIRE, KABINI,
MULLINS, KAVERI, HAWAII
[   232.749] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[   232.749] (II) FBDEV: driver for framebuffer: fbdev
[   232.749] (II) VESA: driver for VESA chipsets: vesa
[   232.758] (II) [KMS] Kernel modesetting enabled.
[   232.758] (WW) Falling back to old probe method for modesetting
[   232.758] (WW) Falling back to old probe method for fbdev
[   232.759] (II) Module fbdevhw: vendor="X.Org Foundation"
[   232.759]    compiled for 1.21.1.4, module version = 0.0.2
[   232.759]    ABI class: X.Org Video Driver, version 25.2
[   232.759] (II) RADEON(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 24/32
[   232.759] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
[   232.759] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[   232.759] (==) RADEON(0): Default visual is TrueColor
[   232.759] (==) RADEON(0): RGB weight 888
[   232.759] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
[   232.759] (--) RADEON(0): Chipset: "ATI Radeon HD 5450" (ChipID = 0x68f9)
[   232.759] (II) Module "fb" already built-in
[   232.759] (II) Module "dri2" already built-in
[   232.835] (II) Module glamoregl: vendor="X.Org Foundation"
[   232.835]    compiled for 1.21.1.4, module version = 1.0.1
[   232.835]    ABI class: X.Org ANSI C Emulation, version 0.4
[   232.853] (II) RADEON(0): glamor X acceleration enabled on AMD CEDAR (DRM 2.50.0 / 5.19.0-35-generic, LLVM 15.0.2)
[   232.853] (II) RADEON(0): glamor detected, initialising EGL layer.
[   232.853] (II) RADEON(0): KMS Color Tiling: enabled
[   232.853] (II) RADEON(0): KMS Color Tiling 2D: enabled
[   232.853] (==) RADEON(0): TearFree property default: auto
[   232.853] (II) RADEON(0): KMS Pageflipping: enabled
[   232.870] (II) RADEON(0): Output DVI-0 has no monitor section
[   232.902] (II) RADEON(0): Output DVI-1 has no monitor section
[   232.918] (II) RADEON(0): EDID for output DVI-0
[   232.950] (II) RADEON(0): EDID for output DVI-1
[   232.950] (II) RADEON(0): Manufacturer: SAM  Model: 2b5  Serial#: 1213542964
[   232.950] (II) RADEON(0): Year: 2008  Week: 13
[   232.950] (II) RADEON(0): EDID Version: 1.3
[   232.950] (II) RADEON(0): Analog Display Input,  Input Voltage Level: 0.700/0.300 V
[   232.950] (II) RADEON(0): Sync:  Separate  Composite  SyncOnGreen
[   232.950] (II) RADEON(0): Max Image Size [cm]: horiz.: 52  vert.: 32
[   232.950] (II) RADEON(0): Gamma: 2.60
[   232.950] (II) RADEON(0): DPMS capabilities: Off; RGB/Color Display
[   232.950] (II) RADEON(0): First detailed timing is preferred mode
[   232.950] (II) RADEON(0): redX: 0.653 redY: 0.337   greenX: 0.295 greenY: 0.607
[   232.950] (II) RADEON(0): blueX: 0.144 blueY: 0.075   whiteX: 0.312 whiteY: 0.329
[   232.950] (II) RADEON(0): Supported established timings:
[   232.950] (II) RADEON(0): Supported standard timings:
[   232.950] (II) RADEON(0): #0: hsize: 1600  vsize 1200  refresh: 60  vid: 16553
[   232.950] (II) RADEON(0): #1: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
[   232.950] (II) RADEON(0): #2: hsize: 1280  vsize 960  refresh: 60  vid: 16513
[   232.950] (II) RADEON(0): #3: hsize: 1152  vsize 864  refresh: 75  vid: 20337
[   232.950] (II) RADEON(0): Supported detailed timing:
[   232.950] (II) RADEON(0): clock: 154.0 MHz   Image Size:  518 x 324 mm
[   232.950] (II) RADEON(0): h_active: 1920  h_sync: 1968  h_sync_end 2000 h_blank_end 2080 h_border: 0
[   232.950] (II) RADEON(0): v_active: 1200  v_sync: 1203  v_sync_end 1209 v_blanking: 1235 v_border: 0
[   232.950] (II) RADEON(0): Ranges: V min: 56 V max: 75 Hz, H min: 30 H max: 81 kHz, PixClock max 175 MHz
``````

Thank you.

## Cut points, continuous paths and increasing sequence of sets

currently I have a question about the following point-set topology problem. Everything takes place in $$(mathbb C,|cdot|)$$ and we are given the following setup.

1. One has a sequence of closed connected sets of points in the complex plane $${L_t}_{t geq 0}$$ (the precise definition for this problem should be irrelavant) such that $$L_t subseteq L_{t+s}$$ for each $$s > 0$$. So basically as $$t$$ increases the set grows aswell.
2. There exist continuous curves $$gamma$$ such that for each $$t geq 0$$ one has $$gamma : [-t,t] to mathbb C$$ such that $$gamma([-t,t]) subseteq L_t$$. Moreover we know especially that $$gamma(t+s)$$ and $$gamma(-(t+s))$$ are not in $$L_t$$ and together with another given property one can actually proof that $$gamma(t)$$ and $$gamma(-t)$$ are cut points of $$L_{t+s}$$ for $$s > 0$$. Using the definition found here this tells us (for example) that $$L_{t+s} setminus gamma(t)$$ is disconnected.

Question: We already have for each $$t geq 0 : gamma([-t,t]) subseteq L_t$$ I want to proof that one actually has equality, i.e. $$L_t = gamma([-t,t])$$.

Idea: Take for example $$[a,b]$$ in $$mathbb R$$ then every point $$c in (a,b)$$ is a cutpoint, the important take away here is that the ”end-points” of the interval $$[a,b]$$ are not cutpoints. Here something similiar should be possible. Since $$gamma(t)$$ is a cut point of $$L_{t+s}$$ it cannot be that that $$L_{t+s} setminus L_t$$ did not grow ”along” $$gamma(t)$$. Growing say along the middle of the curve around $$gamma(t/2)$$ should contradict some combination of the notion of cut point and continuity of $$gamma$$ but I find it hard to write down precisely.

## ref{xyz} with usepackage{hyperref} not working correctly

I use pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex)

I put label on sections, figures, etc.

I had been using texlive 2016. Until I installed texlive 2022, ref{xyz} produced only the number for xyz.

Now it includes the number, the title (section name, figure caption, …) what it is (section, figure, …) and then the number again.

For example, with an equation having label{Flow}, when I wrote “Equation (ref{Flow})” I used to get “Equation (2)”. Now I get “Equation (2Flowequation.3.2)”

This occurs both using documentclass{article} and a proprietary class for a professional journal. I haven’t tried others.

I’ve “compiled” in a fresh directory, so it’s not due to confusion caused by an old .aux file.

Without including hypeffef, I get only the number — but of course no hyperlink.

Is there a repair for this?

## Is there a Wayland diagnostic to check for supported display resolutions?

So far as I can tell, the listed resolutions:

``````nicholas@mordor:~\$
nicholas@mordor:~\$ cat /sys/class/drm/card0/card0-VGA-1/modes
1024x768
800x600
800x600
848x480
640x480
nicholas@mordor:~\$
nicholas@mordor:~\$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04 LTS
Release:    22.04
Codename:   jammy
nicholas@mordor:~\$
``````

match what is shown in `setting` exactly. However, prior to logging out, higher resolutions were available.

Is there a diagnostic to re-check supported resolutions?

## Is \$ mu(E times F) leq nu(E times F) forall (E,F) implies mu(A) leq nu(A) forall A in mathcal{E} otimes mathcal{F} \$ true?

Let $$(X,mathcal{E})$$ and $$(Y,mathcal{F})$$ denote two measurable spaces and let $$mu,nu$$ denote two finite measures on $$(X times Y, mathcal{E} otimes mathcal{F})$$, where $$mathcal{E} otimes mathcal{F}:= sigma(mathcal{E} times mathcal{F})$$. Consider the claim

$$mu(E times F) leq nu(E times F) text{ for all } (E,F) in mathcal{E} times mathcal{F} implies mu(A) leq nu(A) text{ for all } A in mathcal{E} otimes mathcal{F}.$$

Question: Is this claim true?

Attempt:

Define the set $$M = {A in mathcal{E} otimes mathcal{F} colon mu(A) leq nu(A)}.$$
Then we want to show that $$M = mathcal{E} otimes mathcal{F}$$. Note that clearly $$M subseteq mathcal{E} otimes mathcal{F}$$. For the other inclusion, we have by assumption that $$mathcal{E} times mathcal{F} subseteq M$$ so it follows that $$mathcal{E} otimes mathcal{F}= sigma(mathcal{E} times mathcal{F}) subseteq sigma (M)$$ and hence it would suffice to show $$M$$ is a $$sigma$$-algebra.

However I am not sure this is the case. I can’t seem to show that $$M$$ is closed under complements and countable unions. In particular say for the union part, we can do the following:
$$mu(bigcup_{n in mathbb{N}}A_n) leq sum_{n in mathbb{N}} mu(A_n) leq sum_{n in mathbb{N}} nu(A_n),$$
but then we cannot go back to $$nu(bigcup_{n in mathbb{N}}A_n)$$. So this is where I am stuck.

I have also tried to look at Dynkin’s $$pi$$-theorem but at least I could not see how this was useful here.

Also I haven’t been able to come up with any counterexample yet.

As a final remark, I will just need to apply this result for $$mathcal{E},mathcal{F} = mathcal{B(mathbb{R}^d}),mathcal{B(mathbb{R}^m})$$ but I would like to prove it higher generality if this is indeed possible. If this is not possible, are there any conditions we can impose for it to hold? Any feedback/help is much appreciated!

## Problem to define a key and the associated value of a table from a variable

I’m sorry for the imprecision of my question but I couldn’t find a way to describe my problem correctly.

I created a new package and in the “lua” part, I use two classes, one for points and the other for lines. Two tables `z` and `L` are associated to these classes. In the first one are stored the points and in the second the lines.
For example for points `z.a = point: new (1,2)`. This defines the point `a` whose affix (complex number) is `1+2i`. In the table here the key is `a` and the value `1+2i` . In the same way if `a` and `b` are defined, I can define a line with for example `L.a__b = line: new (z.a,z.b)`. This is a bit more complicated because tables are stored in a table.

I may be wrong but I think my problem can be translated like this:
If x=a and y=b then how do I define a function that gives me `L.a__b = line: new (z.a,z.b)`, `L.x__y` etc. gives nothing.

The package can be found on this page tkz-elements. You will find in the archive the code of tkz-elements a readme and a small documentation and several examples. All this is still experimental!

Here is the more complete code:

``````documentclass{article}
usepackage{tkz-euclide}
usepackage{tkz-elements}
begin{document}
parindent = 0pt

begin{elements}
z.a = point: new (0, -1)
z.b = point: new (4, 2)
z.c = point: new (1, 2)
z.d = point: new (-1, 3)
L.a__b = line: new (z.a,z.b)
L.a__d = line: new (z.a,z.d)
L.d__b = line: new (z.d,z.b)
-- L.c__d = line: new (z.c,z.d)
-- z.i =intersection_ll_ (L.a__b,L.c__d)

va = tostring(c__d)
for i in pairs(L) do
if i == va then
else
_, _,ft, sd = string.find( "c__d", "(.+)__(.+)" )
L["ft__sd"] = line: new (z.ft,z.sd)  -- wrong !
--  tex.print(ft..'__'..sd)   -- to show the values of ft and sd
break
end
end

-- the next code is here to show the different values
for i,k in pairs(L) do
tex.print(tostring(k)..";"..tostring(i))
for u,v in pairs(k)
do
tex.print(tostring(v))
end
tex.print('\\')
end
end{elements}

begin{tikzpicture}
tkzGetNodes

Some explanations: 4 points are defined then 4 lines but I commented the last one `L.c__d` to show my problem.
Having commented `L.c__d = line: new (z.c,z.d)` this line is no longer defined. So I parse the expression representing this line with the `string.find` function and get `ft` and `sd` which point to `c` and `d`.
Question: How can I use `ft` and `sd` to get `L.c__d = line: new (z.c,z.d)`?