Merge branch 'master' into x86_64
Conflicts: build/jam/FloppyBootImage build/jam/OptionalBuildFeatures build/jam/OptionalPackages headers/private/shared/cpu_type.h src/bin/ps.c src/bin/sysinfo.cpp src/kits/tracker/PoseView.cpp src/preferences/appearance/DecorSettingsView.cpp src/preferences/virtualmemory/Settings.cpp src/servers/input/AddOnManager.cpp src/servers/input/InputServer.cpp src/servers/input/InputServerMethod.cpp src/system/boot/Jamfile src/system/boot/platform/raspberrypi_arm/mmu.cpp src/system/boot/platform/u-boot/arch/arm/Jamfile src/system/kernel/arch/x86/arch_cpu.cpp src/system/kernel/arch/x86/arch_thread.cpp src/system/kernel/cache/block_cache.cpp src/system/kernel/vm/VMAnonymousCache.cpp
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
class BView;
|
||||
class BLayoutItem;
|
||||
class Constraint;
|
||||
|
||||
|
||||
namespace BPrivate {
|
||||
class SharedSolver;
|
||||
@@ -53,10 +55,41 @@ public:
|
||||
XTab* XTabAt(int32 index) const;
|
||||
YTab* YTabAt(int32 index, bool ordered = false);
|
||||
YTab* YTabAt(int32 index) const;
|
||||
const XTabList GetXTabs() const;
|
||||
const YTabList GetYTabs() const;
|
||||
|
||||
int32 IndexOf(XTab* tab, bool ordered = false);
|
||||
int32 IndexOf(YTab* tab, bool ordered = false);
|
||||
|
||||
int32 CountConstraints() const;
|
||||
Constraint* ConstraintAt(int32 index) const;
|
||||
bool AddConstraint(Constraint* constraint);
|
||||
bool RemoveConstraint(Constraint* constraint,
|
||||
bool deleteConstraint = true);
|
||||
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3,
|
||||
double coeff4, Variable* var4,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
|
||||
Row* AddRow(YTab* top, YTab* bottom);
|
||||
Column* AddColumn(XTab* left, XTab* right);
|
||||
|
||||
@@ -66,6 +99,7 @@ public:
|
||||
YTab* Bottom() const;
|
||||
|
||||
LinearProgramming::LinearSpec* Solver() const;
|
||||
LinearProgramming::ResultType ValidateLayout();
|
||||
|
||||
void SetInsets(float insets);
|
||||
void SetInsets(float x, float y);
|
||||
@@ -106,9 +140,7 @@ public:
|
||||
YTab* bottom = NULL);
|
||||
virtual Area* AddItem(BLayoutItem* item, Row* row,
|
||||
Column* column);
|
||||
|
||||
bool SaveLayout(BMessage* archive) const;
|
||||
bool RestoreLayout(const BMessage* archive);
|
||||
|
||||
struct BadLayoutPolicy;
|
||||
|
||||
void SetBadLayoutPolicy(BadLayoutPolicy* policy);
|
||||
@@ -192,6 +224,9 @@ private:
|
||||
friend class YTab;
|
||||
friend class Area;
|
||||
|
||||
class BALMLayoutSpecListener;
|
||||
friend class BALMLayoutSpecListener;
|
||||
|
||||
float InsetForTab(XTab* tab) const;
|
||||
float InsetForTab(YTab* tab) const;
|
||||
|
||||
@@ -208,6 +243,7 @@ private:
|
||||
void _SetSolver(BPrivate::SharedSolver* solver);
|
||||
|
||||
BPrivate::SharedSolver* fSolver;
|
||||
BALMLayoutSpecListener* fSpecListener;
|
||||
|
||||
BReference<XTab> fLeft;
|
||||
BReference<XTab> fRight;
|
||||
@@ -231,9 +267,12 @@ private:
|
||||
YTabList fYTabList;
|
||||
bool fYTabsSorted;
|
||||
|
||||
BObjectList<Constraint> fConstraints;
|
||||
|
||||
RowColumnManager* fRowColumnManager;
|
||||
|
||||
BadLayoutPolicy* fBadLayoutPolicy;
|
||||
|
||||
uint32 _reserved[5];
|
||||
};
|
||||
|
||||
|
||||
@@ -56,10 +56,10 @@ public:
|
||||
XTab* Right() const;
|
||||
YTab* Top() const;
|
||||
YTab* Bottom() const;
|
||||
void SetLeft(XTab* left);
|
||||
void SetRight(XTab* right);
|
||||
void SetTop(YTab* top);
|
||||
void SetBottom(YTab* bottom);
|
||||
void SetLeft(BReference<XTab> left);
|
||||
void SetRight(BReference<XTab> right);
|
||||
void SetTop(BReference<YTab> top);
|
||||
void SetBottom(BReference<YTab> bottom);
|
||||
|
||||
Row* GetRow() const;
|
||||
Column* GetColumn() const;
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
#ifndef _FDT_H
|
||||
#define _FDT_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
struct fdt_header {
|
||||
uint32_t magic; /* magic word FDT_MAGIC */
|
||||
uint32_t totalsize; /* total size of DT block */
|
||||
uint32_t off_dt_struct; /* offset to structure */
|
||||
uint32_t off_dt_strings; /* offset to strings */
|
||||
uint32_t off_mem_rsvmap; /* offset to memory reserve map */
|
||||
uint32_t version; /* format version */
|
||||
uint32_t last_comp_version; /* last compatible version */
|
||||
|
||||
/* version 2 fields below */
|
||||
uint32_t boot_cpuid_phys; /* Which physical CPU id we're
|
||||
booting on */
|
||||
/* version 3 fields below */
|
||||
uint32_t size_dt_strings; /* size of the strings block */
|
||||
|
||||
/* version 17 fields below */
|
||||
uint32_t size_dt_struct; /* size of the structure block */
|
||||
};
|
||||
|
||||
struct fdt_reserve_entry {
|
||||
uint64_t address;
|
||||
uint64_t size;
|
||||
};
|
||||
|
||||
struct fdt_node_header {
|
||||
uint32_t tag;
|
||||
char name[0];
|
||||
};
|
||||
|
||||
struct fdt_property {
|
||||
uint32_t tag;
|
||||
uint32_t len;
|
||||
uint32_t nameoff;
|
||||
char data[0];
|
||||
};
|
||||
|
||||
#endif /* !__ASSEMBLY */
|
||||
|
||||
#define FDT_MAGIC 0xd00dfeed /* 4: version, 4: total size */
|
||||
#define FDT_TAGSIZE sizeof(uint32_t)
|
||||
|
||||
#define FDT_BEGIN_NODE 0x1 /* Start node: full name */
|
||||
#define FDT_END_NODE 0x2 /* End node */
|
||||
#define FDT_PROP 0x3 /* Property: name off,
|
||||
size, content */
|
||||
#define FDT_NOP 0x4 /* nop */
|
||||
#define FDT_END 0x9
|
||||
|
||||
#define FDT_V1_SIZE (7*sizeof(uint32_t))
|
||||
#define FDT_V2_SIZE (FDT_V1_SIZE + sizeof(uint32_t))
|
||||
#define FDT_V3_SIZE (FDT_V2_SIZE + sizeof(uint32_t))
|
||||
#define FDT_V16_SIZE FDT_V3_SIZE
|
||||
#define FDT_V17_SIZE (FDT_V16_SIZE + sizeof(uint32_t))
|
||||
|
||||
#endif /* _FDT_H */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,23 @@
|
||||
#ifndef _LIBFDT_ENV_H
|
||||
#define _LIBFDT_ENV_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
#define _B(n) ((unsigned long long)((uint8_t *)&x)[n])
|
||||
static inline uint32_t fdt32_to_cpu(uint32_t x)
|
||||
{
|
||||
return (_B(0) << 24) | (_B(1) << 16) | (_B(2) << 8) | _B(3);
|
||||
}
|
||||
#define cpu_to_fdt32(x) fdt32_to_cpu(x)
|
||||
|
||||
static inline uint64_t fdt64_to_cpu(uint64_t x)
|
||||
{
|
||||
return (_B(0) << 56) | (_B(1) << 48) | (_B(2) << 40) | (_B(3) << 32)
|
||||
| (_B(4) << 24) | (_B(5) << 16) | (_B(6) << 8) | _B(7);
|
||||
}
|
||||
#define cpu_to_fdt64(x) fdt64_to_cpu(x)
|
||||
#undef _B
|
||||
|
||||
#endif /* _LIBFDT_ENV_H */
|
||||
@@ -0,0 +1,95 @@
|
||||
#ifndef _LIBFDT_INTERNAL_H
|
||||
#define _LIBFDT_INTERNAL_H
|
||||
/*
|
||||
* libfdt - Flat Device Tree manipulation
|
||||
* Copyright (C) 2006 David Gibson, IBM Corporation.
|
||||
*
|
||||
* libfdt is dual licensed: you can use it either under the terms of
|
||||
* the GPL, or the BSD license, at your option.
|
||||
*
|
||||
* a) This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
|
||||
* MA 02110-1301 USA
|
||||
*
|
||||
* Alternatively,
|
||||
*
|
||||
* b) Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#include <fdt.h>
|
||||
|
||||
#define FDT_ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
|
||||
#define FDT_TAGALIGN(x) (FDT_ALIGN((x), FDT_TAGSIZE))
|
||||
|
||||
#define FDT_CHECK_HEADER(fdt) \
|
||||
{ \
|
||||
int err; \
|
||||
if ((err = fdt_check_header(fdt)) != 0) \
|
||||
return err; \
|
||||
}
|
||||
|
||||
int _fdt_check_node_offset(const void *fdt, int offset);
|
||||
int _fdt_check_prop_offset(const void *fdt, int offset);
|
||||
const char *_fdt_find_string(const char *strtab, int tabsize, const char *s);
|
||||
int _fdt_node_end_offset(void *fdt, int nodeoffset);
|
||||
|
||||
static inline const void *_fdt_offset_ptr(const void *fdt, int offset)
|
||||
{
|
||||
return (const char *)fdt + fdt_off_dt_struct(fdt) + offset;
|
||||
}
|
||||
|
||||
static inline void *_fdt_offset_ptr_w(void *fdt, int offset)
|
||||
{
|
||||
return (void *)(uintptr_t)_fdt_offset_ptr(fdt, offset);
|
||||
}
|
||||
|
||||
static inline const struct fdt_reserve_entry *_fdt_mem_rsv(const void *fdt, int n)
|
||||
{
|
||||
const struct fdt_reserve_entry *rsv_table =
|
||||
(const struct fdt_reserve_entry *)
|
||||
((const char *)fdt + fdt_off_mem_rsvmap(fdt));
|
||||
|
||||
return rsv_table + n;
|
||||
}
|
||||
static inline struct fdt_reserve_entry *_fdt_mem_rsv_w(void *fdt, int n)
|
||||
{
|
||||
return (void *)(uintptr_t)_fdt_mem_rsv(fdt, n);
|
||||
}
|
||||
|
||||
#define FDT_SW_MAGIC (~FDT_MAGIC)
|
||||
|
||||
#endif /* _LIBFDT_INTERNAL_H */
|
||||
@@ -6,9 +6,6 @@
|
||||
#ifndef CONSTRAINT_H
|
||||
#define CONSTRAINT_H
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <File.h>
|
||||
#include <ObjectList.h>
|
||||
#include <String.h>
|
||||
#include <SupportDefs.h>
|
||||
@@ -28,20 +25,26 @@ class LinearSpec;
|
||||
*/
|
||||
class Constraint {
|
||||
public:
|
||||
Constraint();
|
||||
/*! Creates a soft copy of the constraint which is not connected
|
||||
to the solver. Variables are not copied or cloned but the soft copy
|
||||
has its own summand list with summands. */
|
||||
Constraint(Constraint* constraint);
|
||||
|
||||
int32 Index() const;
|
||||
|
||||
SummandList* LeftSide();
|
||||
/*! This just overwrites the current list. The caller has to take
|
||||
care about the old left side, i.e. delete it. */
|
||||
void SetLeftSide(SummandList* summands);
|
||||
|
||||
bool SetLeftSide(SummandList* summands,
|
||||
bool deleteOldSummands);
|
||||
|
||||
void SetLeftSide(double coeff1, Variable* var1);
|
||||
void SetLeftSide(double coeff1, Variable* var1,
|
||||
bool SetLeftSide(double coeff1, Variable* var1);
|
||||
bool SetLeftSide(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2);
|
||||
void SetLeftSide(double coeff1, Variable* var1,
|
||||
bool SetLeftSide(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3);
|
||||
void SetLeftSide(double coeff1, Variable* var1,
|
||||
bool SetLeftSide(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3,
|
||||
double coeff4, Variable* var4);
|
||||
@@ -58,11 +61,6 @@ public:
|
||||
const char* Label();
|
||||
void SetLabel(const char* label);
|
||||
|
||||
Variable* DNeg() const;
|
||||
Variable* DPos() const;
|
||||
|
||||
bool IsSoft() const;
|
||||
|
||||
bool IsValid();
|
||||
void Invalidate();
|
||||
|
||||
@@ -86,16 +84,10 @@ private:
|
||||
|
||||
double fPenaltyNeg;
|
||||
double fPenaltyPos;
|
||||
Summand* fDNegObjSummand;
|
||||
Summand* fDPosObjSummand;
|
||||
BString fLabel;
|
||||
|
||||
bool fIsValid;
|
||||
|
||||
public:
|
||||
friend class LinearSpec;
|
||||
friend class LPSolveInterface;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
#ifndef LINEAR_SPEC_H
|
||||
#define LINEAR_SPEC_H
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <List.h>
|
||||
#include <ObjectList.h>
|
||||
#include <OS.h>
|
||||
#include <Referenceable.h>
|
||||
#include <Size.h>
|
||||
@@ -36,7 +34,7 @@ class SolverInterface {
|
||||
public:
|
||||
SolverInterface(LinearSpec* linSpec);
|
||||
|
||||
virtual ~SolverInterface() {}
|
||||
virtual ~SolverInterface();
|
||||
|
||||
virtual ResultType Solve() = 0;
|
||||
|
||||
@@ -49,12 +47,10 @@ public:
|
||||
virtual bool LeftSideChanged(Constraint* constraint) = 0;
|
||||
virtual bool RightSideChanged(Constraint* constraint) = 0;
|
||||
virtual bool OperatorChanged(Constraint* constraint) = 0;
|
||||
virtual bool PenaltiesChanged(Constraint* constraint) = 0;
|
||||
|
||||
virtual bool SaveModel(const char* fileName) = 0;
|
||||
|
||||
virtual BSize MinSize(Variable* width, Variable* height) = 0;
|
||||
virtual BSize MaxSize(Variable* width, Variable* height) = 0;
|
||||
|
||||
virtual ResultType FindMins(const VariableList* variables) = 0;
|
||||
virtual ResultType FindMaxs(const VariableList* variables) = 0;
|
||||
|
||||
@@ -63,10 +59,26 @@ public:
|
||||
const Constraint** _max) const = 0;
|
||||
|
||||
protected:
|
||||
bool AddConstraint(Constraint* constraint,
|
||||
bool notifyListener);
|
||||
bool RemoveConstraint(Constraint* constraint,
|
||||
bool deleteConstraint, bool notifyListener);
|
||||
|
||||
LinearSpec* fLinearSpec;
|
||||
};
|
||||
|
||||
|
||||
class SpecificationListener {
|
||||
public:
|
||||
virtual ~SpecificationListener();
|
||||
|
||||
virtual void VariableAdded(Variable* variable);
|
||||
virtual void VariableRemoved(Variable* variable);
|
||||
virtual void ConstraintAdded(Constraint* constraint);
|
||||
virtual void ConstraintRemoved(Constraint* constraint);
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
* Specification of a linear programming problem.
|
||||
*/
|
||||
@@ -75,6 +87,10 @@ public:
|
||||
LinearSpec();
|
||||
virtual ~LinearSpec();
|
||||
|
||||
/*! Does not takes ownership of the listener. */
|
||||
bool AddListener(SpecificationListener* listener);
|
||||
bool RemoveListener(SpecificationListener* listener);
|
||||
|
||||
Variable* AddVariable();
|
||||
bool AddVariable(Variable* variable);
|
||||
bool RemoveVariable(Variable* variable,
|
||||
@@ -87,47 +103,32 @@ public:
|
||||
bool RemoveConstraint(Constraint* constraint,
|
||||
bool deleteConstraint = true);
|
||||
|
||||
Constraint* AddConstraint(SummandList* summands,
|
||||
OperatorType op, double rightSide);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
OperatorType op, double rightSide);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
OperatorType op, double rightSide);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3,
|
||||
OperatorType op, double rightSide);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3,
|
||||
double coeff4, Variable* var4,
|
||||
OperatorType op, double rightSide);
|
||||
|
||||
Constraint* AddConstraint(SummandList* summands,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg, double penaltyPos);
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg, double penaltyPos);
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg, double penaltyPos);
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg, double penaltyPos);
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
Constraint* AddConstraint(double coeff1, Variable* var1,
|
||||
double coeff2, Variable* var2,
|
||||
double coeff3, Variable* var3,
|
||||
double coeff4, Variable* var4,
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg, double penaltyPos);
|
||||
|
||||
BSize MinSize(Variable* width, Variable* height);
|
||||
BSize MaxSize(Variable* width, Variable* height);
|
||||
double penaltyNeg = -1,
|
||||
double penaltyPos = -1);
|
||||
|
||||
ResultType FindMins(const VariableList* variables);
|
||||
ResultType FindMaxs(const VariableList* variables);
|
||||
@@ -151,9 +152,18 @@ public:
|
||||
|
||||
protected:
|
||||
friend class Constraint;
|
||||
bool UpdateLeftSide(Constraint* constraint);
|
||||
friend class SolverInterface;
|
||||
|
||||
bool UpdateLeftSide(Constraint* constraint,
|
||||
const SummandList* oldSummands);
|
||||
bool UpdateRightSide(Constraint* constraint);
|
||||
bool UpdateOperator(Constraint* constraint);
|
||||
bool UpdatePenalties(Constraint* constraint);
|
||||
|
||||
bool AddConstraint(Constraint* constraint,
|
||||
bool notifyListener);
|
||||
bool RemoveConstraint(Constraint* constraint,
|
||||
bool deleteConstraint, bool notifyListener);
|
||||
private:
|
||||
/*! Check if all entries != NULL otherwise delete the list and its
|
||||
entries. */
|
||||
@@ -162,6 +172,9 @@ private:
|
||||
OperatorType op, double rightSide,
|
||||
double penaltyNeg, double penaltyPos);
|
||||
|
||||
void _AddConstraintRef(Variable* var);
|
||||
void _RemoveConstraintRef(Variable* var);
|
||||
|
||||
VariableList fVariables;
|
||||
VariableList fUsedVariables;
|
||||
ConstraintList fConstraints;
|
||||
@@ -169,6 +182,8 @@ private:
|
||||
bigtime_t fSolvingTime;
|
||||
|
||||
SolverInterface* fSolver;
|
||||
|
||||
BObjectList<SpecificationListener> fListeners;
|
||||
};
|
||||
|
||||
} // namespace LinearProgramming
|
||||
|
||||
@@ -19,6 +19,7 @@ class Variable;
|
||||
*/
|
||||
class Summand {
|
||||
public:
|
||||
Summand(Summand* summand);
|
||||
Summand(double coeff, Variable* var);
|
||||
~Summand();
|
||||
|
||||
@@ -31,7 +32,6 @@ public:
|
||||
private:
|
||||
double fCoeff;
|
||||
Variable* fVar;
|
||||
bool fUsedInPenaltyFunction; //not set yet
|
||||
};
|
||||
|
||||
typedef BObjectList<Summand> SummandList;
|
||||
|
||||
Reference in New Issue
Block a user